2011-04-19 Adrienne Walker Reviewed by Kenneth Russell. [chromium] Initialize depth mask to known value before getBooleanv call https://bugs.webkit.org/show_bug.cgi?id=58948 This trips an assert in the GPU command buffer client code if the pointed-to value is not initialized to 0 or -1. * platform/graphics/gpu/DrawingBuffer.cpp: (WebCore::DrawingBuffer::clearFramebuffer): 2011-04-19 Pratik Solanki Reviewed by Simon Fraser. BitmapImage::destroyMetadataAndNotify should clear m_checkedForSolidColor https://bugs.webkit.org/show_bug.cgi?id=58926 * platform/graphics/BitmapImage.cpp: (WebCore::BitmapImage::destroyMetadataAndNotify): Set m_checkedForSolidColor to false. * platform/graphics/BitmapImage.h: (WebCore::BitmapImage::assertNotSolidColor): * platform/graphics/cg/ImageCG.cpp: (WebCore::Image::drawPattern): Add assert to make sure this is not called for a 1x1 image. 2011-04-19 Ryosuke Niwa Reviewed by Ojan Vafai. REGRESSION(r83967): Crash in selectionExtentRespectingEditingBoundary https://bugs.webkit.org/show_bug.cgi?id=58910 The crash was caused by selectionExtentRespectingEditingBoundary's incorrectly assuming that targetNode always have renderer when there selection has an editable root and the target node is outside of the editable root. Fixed the bug by adding an early exit when the target node is null. No new tests are added since we don't have a reduction for this crash. * page/EventHandler.cpp: (WebCore::selectionExtentRespectingEditingBoundary): 2011-04-19 Geoffrey Garen Try to fix v8 build. * bindings/scripts/CodeGeneratorV8.pm: This is a pretty bad system. 2011-04-19 Enrica Casucci Reviewed by Ryosuke Niwa. REGRESSION(r55762): Highlight color can't be copied in gmail. https://bugs.webkit.org/show_bug.cgi?id=58925 Test: editing/pasteboard/copy-text-with-backgroundcolor.html The changes of r55762 uncovered the underlying issue here. The markup fragment placed in the pasteboard does not contain the background color style. This occurs only if the selection is limited to a single text node, whereas if the selection spans across multiple nodes, the style is preserved correctly. The fix consists in changing the logic that decides whether we should include the wrapping node in the markup. That logic is based on the code in highestAncestorToWrapMarkup which relies on isElementPresentational to choose candidates to be the wrapping node. I've extended it to accept nodes that have non fully transparent background colors. * editing/Editor.cpp: (WebCore::Editor::hasTransparentBackgroundColor): Now is a static method of the class. * editing/Editor.h: * editing/markup.cpp: (WebCore::isElementPresentational): Modified to use hasTransparentBackgroundColor. 2011-04-19 Geoffrey Garen Reviewed by Oliver Hunt. Removed a use of markDOMObjectWrapper: NodeLists https://bugs.webkit.org/show_bug.cgi?id=58939 * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::markChildren): No need to mark node lists, because now they use the opaque roots system to decide their lifetimes. * bindings/js/JSNamedNodeMapCustom.cpp: Removed stray newline. * bindings/js/JSNodeListCustom.cpp: (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots): (WebCore::JSNodeListOwner::finalize): (WebCore::wrapperOwner): (WebCore::wrapperContext): (WebCore::toJS): Use the opaque roots system to avoid relying on markDOMObjectWrapper. * dom/DynamicNodeList.cpp: (WebCore::DynamicNodeList::isDynamicNodeList): * dom/DynamicNodeList.h: (WebCore::DynamicNodeList::rootNode): Added the ability to get the node backing a NodeList, for use in the opaque roots system. * dom/Node.cpp: * dom/Node.h: * dom/NodeList.h: (WebCore::NodeList::isDynamicNodeList): Ditto. Removed cruft related to the old way of marking NodeLists. * dom/NodeList.idl: We need a custom toJS so we can specify a custom WeakHandleOwner at construction time. 2011-04-19 Antoine Labour Reviewed by James Robinson. For invisible iframes, propagate compositing to parent instead of setting self as root. https://bugs.webkit.org/show_bug.cgi?id=58414 Tests: compositing/iframes/invisible-iframe.html compositing/iframes/invisible-nested-iframe-hide.html compositing/iframes/invisible-nested-iframe-show.html compositing/iframes/invisible-nested-iframe.html * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame): Propagate compositing to parent even if frame owner has no renderer. 2011-04-19 Dan Bernstein Reviewed by Beth Dakin. Crash when the document element is removed Test: fast/events/overflow-viewport-renderer-deleted.html * page/FrameView.cpp: (WebCore::FrameView::calculateScrollbarModesForLayout): Reset m_viewportRenderer, in case this function takes a code path that doesn’t call applyOverflowToViewport(). (WebCore::FrameView::layout): Whitespace change. 2011-04-19 Beth Dakin Reviewed by Maciej Stachowiak. https://bugs.webkit.org/show_bug.cgi?id=57898 REGRESSION (r82185): Scroll position not restored on navigation back to a page in the page cache -and corresponding- Setting the contentsSize of a ScrollView to (0, 0) necessarily causes the scroll position to be lost. (The scroll position is computed based on the visibleContentSize.) This patch provides a mechanism to cache the current scroll position, and then the HistoryController accesses only the cached position rather than calling scrollPosition() which does a computation based on the visibleContentSize. * loader/HistoryController.cpp: (WebCore::HistoryController::saveScrollPositionAndViewStateToItem): * page/FrameView.cpp: (WebCore::FrameView::resetScrollbarsAndClearContentsSize): * platform/ScrollView.h: (WebCore::ScrollView::cacheCurrentScrollPosition): (WebCore::ScrollView::cachedScrollPosition): 2011-04-19 Renata Hodovan Reviewed by Eric Seidel. Move the alignment related macros in Vector.h to new Alignment.h. https://bugs.webkit.org/show_bug.cgi?id=56000 Adding the new file to the forwarding headers of WebCore. * ForwardingHeaders/wtf/Alignment.h: Added. 2011-04-19 Oliver Hunt Reviewed by Andreas Kling. [Qt] QtInstance method cache ownership rules are unclear https://bugs.webkit.org/show_bug.cgi?id=58820 Make the QtInstance method cache use WriteBarrier, and handle ownership properly. * bridge/qt/qt_class.cpp: (JSC::Bindings::QtClass::fallbackObject): (JSC::Bindings::QtClass::fieldNamed): * bridge/qt/qt_instance.cpp: (JSC::Bindings::QtInstance::~QtInstance): (JSC::Bindings::QtInstance::removeCachedMethod): (JSC::Bindings::QtInstance::newRuntimeObject): (JSC::Bindings::QtInstance::markAggregate): * bridge/qt/qt_instance.h: 2011-04-19 David Kilzer Re-order enum ResourceLoadPriority to make Unresolved value less important Reviewed by Antti Koivisto. * platform/network/ResourceLoadPriority.h: (enum ResourceLoadPriority): Moved Unresolved enum to the top of the list and set to -1 to emphasize the fact that this is an unresolved priority (rather than one higher than the highest priority). Removed whitespace from the end of all enum lines. 2011-04-19 Simon Fraser Reviewed by David Hyatt. Background radius is wrong for split inline https://bugs.webkit.org/show_bug.cgi?id=58843 When computing the radii for a segment of a split inline, we have to constrain those radii for the current segment, while still drawing using the entire logical width. Tests: fast/backgrounds/border-radius-split-background-image.html fast/backgrounds/border-radius-split-background.html * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintFillLayer): Pass height and width for this box only to paintFillLayer() * rendering/RenderBox.cpp: (WebCore::RenderBox::paintFillLayer): Pass 0 for unused inlineBox height and width. * rendering/RenderBoxModelObject.h: * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::getBackgroundRoundedRect): When computing the rounded background rect, we have to take the size of this segment of the inline box into account for radius constraining. (WebCore::RenderBoxModelObject::paintFillLayerExtended): Call getBackgroundRoundedRect() in two places. 2011-04-19 Simon Fraser Build fix. For some reason RenderBoxModelObject.cpp was missing from my last commit. * rendering/RenderBoxModelObject.cpp: (WebCore::borderWillArcInnerEdge): (WebCore::edgeFlagForSide): (WebCore::includesEdge): (WebCore::BorderEdge::BorderEdge): (WebCore::BorderEdge::hasVisibleColorAndStyle): (WebCore::BorderEdge::shouldRender): (WebCore::BorderEdge::presentButInvisible): (WebCore::BorderEdge::usedWidth): (WebCore::BorderEdge::getDoubleBorderStripeWidths): (WebCore::edgesShareColor): (WebCore::styleRequiresClipPolygon): (WebCore::borderStyleFillsBorderArea): (WebCore::borderStyleHasInnerDetail): (WebCore::borderStyleIsDottedOrDashed): (WebCore::borderStyleHasUnmatchedColorsAtCorner): (WebCore::colorsMatchAtCorner): (WebCore::willBeOverdrawn): (WebCore::borderStylesRequireMitre): (WebCore::joinRequiresMitre): (WebCore::RenderBoxModelObject::paintOneBorderSide): (WebCore::RenderBoxModelObject::paintBorderSides): (WebCore::RenderBoxModelObject::paintTranslucentBorderSides): (WebCore::RenderBoxModelObject::paintBorder): (WebCore::RenderBoxModelObject::drawBoxSideFromPath): (WebCore::findInnerVertex): (WebCore::RenderBoxModelObject::clipBorderSidePolygon): (WebCore::RenderBoxModelObject::paintBoxShadow): 2011-04-19 Stephen White Reviewed by Kenneth Russell. Refactor GLES2Canvas state application out into its own function. https://bugs.webkit.org/show_bug.cgi?id=58906 Covered by existing tests in fast/canvas and canvas/philip. * platform/graphics/chromium/GLES2Canvas.cpp: (WebCore::GLES2Canvas::applyState): New function to apply compositing and clipping state. (WebCore::GLES2Canvas::fillPath): (WebCore::GLES2Canvas::fillRect): (WebCore::GLES2Canvas::beginShadowDraw): (WebCore::GLES2Canvas::endShadowDraw): Refactor calls to applyState(). * platform/graphics/chromium/GLES2Canvas.h: 2011-04-19 Simon Fraser Reviewed by Dave Hyatt. Fix multiple border rendering issues https://bugs.webkit.org/show_bug.cgi?id=58761 Fix various border-drawing bugs, and optimize some common cases. Also refactors a lot of the border-drawing code to be more maintainable. Rounded border rendering with different border widths looks strange https://bugs.webkit.org/show_bug.cgi?id=17468 paintBorder in RenderObject paint two times the corners https://bugs.webkit.org/show_bug.cgi?id=20495 Overdraw at box corners when using RGBA colors with alpha https://bugs.webkit.org/show_bug.cgi?id=21835 Enable antialiasing for border drawing, when transformed https://bugs.webkit.org/show_bug.cgi?id=22746 Drawing border-radius from path sometimes fails to round outer border in the double style when it should https://bugs.webkit.org/show_bug.cgi?id=41301 Drawing border-radius from path doesn't appear to always match up border edges correctly https://bugs.webkit.org/show_bug.cgi?id=41302 Also fixes Should be able to create Path from RoundedIntRect https://bugs.webkit.org/show_bug.cgi?id=58809 Tests: fast/borders/border-radius-different-width-001.html fast/borders/border-radius-inset-outset.html fast/borders/table-borders.html * platform/graphics/FloatPoint.h: * platform/graphics/FloatPoint.cpp: (WebCore::findSlope): (WebCore::findIntersection): New geometry helper functions (should eventually move into a new GeometryUtilities file). * platform/graphics/Path.h: * platform/graphics/Path.cpp: (WebCore::Path::addRoundedRect): Add an overload of addRoundedRect() that takes a RoundedIntRect. * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::addRoundedRectClip): (WebCore::GraphicsContext::clipOutRoundedRect): (WebCore::GraphicsContext::fillRectWithRoundedHole): Can now add a RoundedIntRect to a Path directly. * platform/graphics/IntRect.h: (WebCore::IntRect::minXMinYCorner): (WebCore::IntRect::maxXMinYCorner): (WebCore::IntRect::minXMaxYCorner): (WebCore::IntRect::maxXMaxYCorner): Convenience functions to get the rect corners, in a writing-mode- friendly way. * platform/graphics/RoundedIntRect.h: * platform/graphics/RoundedIntRect.cpp: (WebCore::RoundedIntRect::isRenderable): We need to know when Path::addRoundedRect() will fail because the sum of the radii exceed the height or width. This method tells us that. * platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::fillRectWithRoundedHole): Can now add a RoundedIntRect to a Path directly. * rendering/RenderBoxModelObject.h: * rendering/RenderBoxModelObject.cpp: (WebCore::borderWillArcInnerEdge): This can just to see if there are inner radii now. (WebCore::edgeFlagForSide): (WebCore::includesEdge): Convenience functions for the BorderEdgeFlags bitmask. (WebCore::BorderEdge::BorderEdge): (WebCore::BorderEdge::hasVisibleColorAndStyle): (WebCore::BorderEdge::shouldRender): (WebCore::BorderEdge::presentButInvisible): (WebCore::BorderEdge::usedWidth): (WebCore::BorderEdge::getDoubleBorderStripeWidths): Convenience class to hold data about how a single edge is drawn, and to contain some commonly used width-related methods. (WebCore::edgesShareColor): (WebCore::styleRequiresClipPolygon): (WebCore::borderStyleFillsBorderArea): (WebCore::borderStyleHasInnerDetail): (WebCore::borderStyleIsDottedOrDashed): (WebCore::borderStyleHasUnmatchedColorsAtCorner): (WebCore::colorsMatchAtCorner): (WebCore::willBeOverdrawn): (WebCore::borderStylesRequireMitre): (WebCore::joinRequiresMitre): Functions used to make the border drawing code more readable, which are used to determine when corners need a mitre, and need antialiasing. (WebCore::RenderBoxModelObject::paintOneBorderSide): Code to paint one side of a border, either via the path, or using rects/polygons, the appropriate mitres and antialiasing at the corners. includeLogicalLeftEdge and includeLogicalRightEdge need to be passed all the way down here so that when we recompute the path for double and ridge/groove borders, we correctly handle split box borders. (WebCore::RenderBoxModelObject::paintBorderSides): Paints the 4 border sides (if present). (WebCore::RenderBoxModelObject::paintTranslucentBorderSides): Called when one or more of the borders has a non-opaque color, and uses a transparency layer for each set of same-colored sides to avoid overdraw at the corners. (WebCore::RenderBoxModelObject::paintBorder): Builds an array of BorderEdge so we can iterate over them to detect different border compbinations, and optimizations. Has a fast path for all-solid borders. (WebCore::RenderBoxModelObject::drawBoxSideFromPath): Moved from RenderObject, since all callers are in RenderBoxModelObject. Has the following changes: * Don't attempt to draw dashes if there is only space for a few, since it looks bad. * Handle double and groove borders on split inlines correctly, making use of includeLogicalLeftEdge, includeLogicalRightEdge (WebCore::findInnerVertex): For borders with a radiused inner edge, the per-side clip polygon has to project inside the padding box to avoid clipping the inner edge. This function computes a reasonable inner corner for the clipping polygon. (WebCore::RenderBoxModelObject::clipBorderSidePolygon): Have the corner joins pass through the corners of the inner and outer border rectangles, ensure we don't clip the inside if necessary, and handle antialiasing on the two mitres. (WebCore::RenderBoxModelObject::paintBoxShadow): Use RenderStyle::getRoundedInnerBorderFor() rather than computeBorderInnerRect() etc. * rendering/RenderObject.h: * rendering/RenderObject.cpp: (WebCore::RenderObject::drawLineForBoxSide): Moved to RenderBoxModelObject. * rendering/style/RenderStyle.h: * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::getRoundedBorderFor): (WebCore::RenderStyle::getRoundedInnerBorderFor): There was some very clumsy code that computed a rounded rect given the border rect and side widths. Cleaned this up by moving some code into RenderStyle. The overloaded getRoundedInnerBorderFor() which takes the border widths is used by the double and groove drawing code. 2011-04-19 Ryosuke Niwa Reviewed by Dimitri Glazkov. REGRESSION(r74228-75294): removing nodes is 200+ times slower when selection is inside a shadow DOM https://bugs.webkit.org/show_bug.cgi?id=57061 The bug was caused by Range::compareNode's incorrectly returning NODE_INSIDE when the selection is inside a shadow DOM and the node is outside of the shadow DOM. This caused respondToNodeModification to call RenderView::clearSelection every time a node is removed when selection is in a shadow DOM and resulted in a significant performance regression. Fixed Ranged::compareNode by making Range::compareBoundaryPoints throw a WRONG_DOCUMENT_ERR when there are no common ancestors between containerA and containerB. This will force compareNode to also throw an exception and prevents respondToNodeModification from clearing selection. No new tests because this is a performance improvement and the fix in Range cannot be tested since shadow DOM isn't exposed to JavaScript. * dom/Range.cpp: (WebCore::Range::setStart): Calls compareBoundaryPoints; since we ensures that the root container noes of start and end nodes are same, we should never get an exception from compareBoundaryPoints. (WebCore::Range::setEnd): Ditto. (WebCore::Range::isPointInRange): Calls compareBoundaryPoints; returns false when compareBoundaryPoints throws an exception. (WebCore::Range::comparePoint): Calls compareBoundaryPoints; exit early when an exception is thrown by compareBoundaryPoints. (WebCore::Range::compareBoundaryPoints): Throws an exception when two containers do not have a common ancestor. (WebCore::Range::boundaryPointsValid): Calls compareBoundaryPoints and checks that it didn't throw an exception. * dom/Range.h: * editing/SelectionController.cpp: (WebCore::SelectionController::respondToNodeModification): * editing/htmlediting.cpp: (WebCore::comparePositions): Calls compareBoundaryPoints. * editing/markup.cpp: (WebCore::createMarkup): Calls compareBoundaryPoints; since startNode and pastEnd are both in the same document and neither are in a shadow DOM, it should never throw an exception. * page/DOMSelection.cpp: (WebCore::DOMSelection::containsNode): Calls compareBoundaryPoints; node is fully selected only if no exception was thrown. 2011-04-19 Jungshik Shin Reviewed by David Levin Make U+FEFF be treated as a zero-width character in both simple script and complex script code paths. In Chromium Windows, UniscribeHelper needs a rather extensive changes summarized below. Other ports need minor changes. https://bugs.webkit.org/show_bug.cgi?id=48860 Test: fast/text/zero-width-characters-complex-script.html * platform/graphics/Font.h: (WebCore::Font::treatAsZeroWidthSpace): U+FEFF is added to the list (WebCore::Font::treatAsZeroWidthSpaceInComplexScript): Added. Same as the above except that ZWNJ and ZWJ are excluded. * platform/graphics/GlyphPageTreeNode.cpp: (WebCore::GlyphPageTreeNode::initializePage): U+FEFF is made to have zero-width characters in simple script (fast) code path. * platform/graphics/chromium/FontUtilsChromiumWin.cpp: (WebCore::FontMap::getSpaceGlyph): Added to get the gid for space glyph to use in adjustSpaceAdvance when zero-width glyph character has a non-zero width and potentially 'visible' glyph. (WebCore::FontMap::FontData::FontData): spaceGlyph member added. (WebCore::getDerivedFontData): spaceGlyph is retrieved as well. * platform/graphics/chromium/FontUtilsChromiumWin.h: * platform/graphics/chromium/UniscribeHelper.cpp: (WebCore::UniscribeHelper::UniscribeHelper): m_spaceGlyph added. (WebCore::UniscribeHelper::shape): spaceGlyph is obtained stored for a font tried for each item. (WebCore::UniscribeHelper::adjustSpaceAdvances): For zero-width complex script characters, set the advance width to zero and replace a non-zero-width/visible glyph with a space glyph. (WebCore::UniscribeHelper::applySpacing): (WebCore::UniscribeHelper::containsMissingGlyphs): turned to a member function because it cannot work on glyphs alone any more but need to take into account a character corresponding to a glyph * platform/graphics/chromium/UniscribeHelper.h: (WebCore::UniscribeHelper::Shaping::Shaping): m_spaceGlyph is added * platform/graphics/chromium/UniscribeHelperTextRun.cpp: (WebCore::UniscribeHelperTextRun::UniscribeHelperTextRun): When calling UniscriberHelper, add a new argument for spaceGlyph. 2011-04-19 Brent Fulgham Reviewed by Adam Roben. Extend the DIBPixelData class with the facility for writing the bitmap representation to disk for debugging purposes. https://bugs.webkit.org/show_bug.cgi?id=58862. * platform/graphics/win/DIBPixelData.cpp: (WebCore::DIBPixelData::writeToFile): New function. * platform/graphics/win/DIBPixelData.h: 2011-04-19 Vsevolod Vlasov Reviewed by Pavel Feldman. Web Inspector: Rename lengthReceived to encodedDataLength/dataLength https://bugs.webkit.org/show_bug.cgi?id=58883 * fileapi/FileReaderLoader.cpp: (WebCore::FileReaderLoader::didReceiveData): * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::didReceiveContentLengthImpl): * inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::didReceiveContentLength): * inspector/InspectorResourceAgent.cpp: (WebCore::InspectorResourceAgent::didReceiveContentLength): * inspector/InspectorResourceAgent.h: * inspector/front-end/NetworkManager.js: (WebInspector.NetworkDispatcher.prototype.dataReceived): * loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::didReceiveData): (WebCore::DocumentThreadableLoader::didReceiveCachedMetadata): * loader/DocumentThreadableLoader.h: * loader/FrameLoaderClient.h: * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::didReceiveData): * loader/MainResourceLoader.h: * loader/NetscapePlugInStreamLoader.cpp: (WebCore::NetscapePlugInStreamLoader::didReceiveData): * loader/NetscapePlugInStreamLoader.h: * loader/ResourceLoadNotifier.cpp: (WebCore::ResourceLoadNotifier::didReceiveData): (WebCore::ResourceLoadNotifier::dispatchDidReceiveContentLength): (WebCore::ResourceLoadNotifier::sendRemainingDelegateMessages): * loader/ResourceLoadNotifier.h: * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::didReceiveData): * loader/ResourceLoader.h: * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didReceiveData): * loader/SubresourceLoader.h: * loader/SubresourceLoaderClient.h: (WebCore::SubresourceLoaderClient::didReceiveData): (WebCore::SubresourceLoaderClient::didReceiveCachedMetadata): * loader/WorkerThreadableLoader.cpp: (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData): (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveCachedMetadata): * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::didReceiveData): * loader/appcache/ApplicationCacheGroup.h: * loader/appcache/ApplicationCacheHost.h: * notifications/Notification.cpp: (WebCore::Notification::didReceiveData): * notifications/Notification.h: * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: (StreamingClient::didReceiveData): * platform/network/BlobResourceHandle.cpp: * platform/network/ResourceHandleClient.h: (WebCore::ResourceHandleClient::didReceiveData): * platform/network/android/ResourceHandleAndroid.cpp: (WebCore::SyncLoader::didReceiveData): * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::WebCoreSynchronousLoaderClient::didReceiveData): * platform/network/curl/ResourceHandleCurl.cpp: * platform/network/mac/ResourceHandleMac.mm: (WebCoreSynchronousLoaderClient::didReceiveData): * platform/network/soup/ResourceHandleSoup.cpp: * platform/network/win/ResourceHandleWin.cpp: * workers/WorkerScriptLoader.h: * xml/XMLHttpRequest.h: 2011-04-19 Stephen White Reviewed by Eric Seidel. Pull framebuffer clearing out into its own function. https://bugs.webkit.org/show_bug.cgi?id=58897 Covered by fast/canvas and canvas/philip tests. * platform/graphics/gpu/DrawingBuffer.cpp: (WebCore::DrawingBuffer::clearFramebuffer): (WebCore::DrawingBuffer::reset): * platform/graphics/gpu/DrawingBuffer.h: 2011-04-19 Brian Salomon Reviewed by Eric Seidel. When flushing GrContext in ~PlatformContextSkia be sure correct GL context is set https://bugs.webkit.org/show_bug.cgi?id=58788 Chromium browser test will be added that loads canvas page and then an acclerated-composited page. Test must trigger ~PlatformContextSkia() followed by invocation of GL compositor. * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::~PlatformContextSkia): 2011-04-19 Csaba Osztrogonác [Qt] REGRESSION(84176): http/tests/xmlhttprequest/event-listener-gc.html fails https://bugs.webkit.org/show_bug.cgi?id=58871 Unreviewed, rolling out r84176, r84178, r84186, r84212 and r84231. http://trac.webkit.org/changeset/84176 (original patch) http://trac.webkit.org/changeset/84178 (original patch - part 2) http://trac.webkit.org/changeset/84186 (build fix) http://trac.webkit.org/changeset/84212 http://trac.webkit.org/changeset/84231 (skip failing test) original bugs: - https://bugs.webkit.org/show_bug.cgi?id=58718 - https://bugs.webkit.org/show_bug.cgi?id=58853 * bridge/qt/qt_class.cpp: (JSC::Bindings::QtClass::fallbackObject): * bridge/qt/qt_instance.cpp: (JSC::Bindings::QtInstance::removeCachedMethod): (JSC::Bindings::QtInstance::markAggregate): * bridge/qt/qt_instance.h: 2011-04-19 Sheriff Bot Unreviewed, rolling out r84050. http://trac.webkit.org/changeset/84050 https://bugs.webkit.org/show_bug.cgi?id=58892 fast/dom/HTMLKeygenElement/keygen.html is crashing on Chromium (Requested by jknotten on #webkit). * dom/ContainerNode.cpp: (WebCore::ContainerNode::takeAllChildrenFrom): (WebCore::ContainerNode::removeBetween): (WebCore::ContainerNode::removeChildren): (WebCore::ContainerNode::parserAddChild): * dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::~Document): (WebCore::Document::setDocType): * dom/Element.h: * dom/Node.cpp: (WebCore::Node::treeScope): (WebCore::Node::setTreeScope): (WebCore::Node::setTreeScopeRecursively): * dom/Node.h: (WebCore::Node::document): * dom/ShadowRoot.cpp: (WebCore::ShadowRoot::ShadowRoot): * dom/ShadowRoot.h: * dom/TreeScope.cpp: (WebCore::TreeScope::TreeScope): (WebCore::TreeScope::setParentTreeScope): * dom/TreeScope.h: * rendering/RenderSlider.cpp: 2011-04-19 Kinuko Yasuda Not reviewed; windows build fix attempt. * storage/StorageInfo.cpp: (WebCore::StorageInfo::~StorageInfo): * storage/StorageInfo.h: 2011-04-19 Kinuko Yasuda Reviewed by David Levin. [Chromium] Enable QUOTA API at runtime if enable-quota flag is given https://bugs.webkit.org/show_bug.cgi?id=58784 No new tests as this does not change any functionality. * bindings/generic/RuntimeEnabledFeatures.cpp: * bindings/generic/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::quotaEnabled): (WebCore::RuntimeEnabledFeatures::setQuotaEnabled): * page/DOMWindow.idl: 2011-04-19 John Gregg Reviewed by Darin Fisher. Enable folder drag-n-drop when using a "webkitdirectory" file input https://bugs.webkit.org/show_bug.cgi?id=58401 This uses a new ChromeClient API to enumerate the directory and return all the files, as if the user had selected that directory by clicking the control in the normal way. * loader/EmptyClients.h: (WebCore::EmptyChromeClient::enumerateChosenDirectory): * page/Chrome.cpp: (WebCore::Chrome::enumerateChosenDirectory): * page/Chrome.h: * page/ChromeClient.h: * platform/network/FormData.cpp: (WebCore::FormData::appendKeyValuePairItems): * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::receiveDropForDirectoryUpload): (WebCore::RenderFileUploadControl::receiveDroppedFiles): * rendering/RenderFileUploadControl.h: 2011-04-19 Sheriff Bot Unreviewed, rolling out r84150. http://trac.webkit.org/changeset/84150 https://bugs.webkit.org/show_bug.cgi?id=58875 Broken backspace in Search box of Web Inspector (Requested by apavlov on #webkit). * inspector/front-end/inspector.js: (WebInspector.documentKeyDown): 2011-04-19 Andrey Adaikin Reviewed by Pavel Feldman. Web Inspector: NPE in TextEditorModel https://bugs.webkit.org/show_bug.cgi?id=58870 * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype._frameAdded): * inspector/front-end/TextEditorModel.js: (WebInspector.TextEditorModel.prototype.setText): 2011-04-19 Hans Wennborg Reviewed by Tony Gentilcore. IndexedDB: Remove accidental header include directive from LevelDB backend. https://bugs.webkit.org/show_bug.cgi?id=58872 No new functionality, no new tests. * storage/IDBLevelDBBackingStore.cpp: 2011-04-19 Herczeg Zoltan Build fix. LEFilter change doesn't compile on ARM neon targets https://bugs.webkit.org/show_bug.cgi?id=58671 Thanks for Charlie Lee to fixing this. * WebCore.gypi: 2011-04-19 Daniel Bates Attempt to fix the Qt Linux Release Minimal build after changeset 84225 (https://bugs.webkit.org/show_bug.cgi?id=52788). * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::ensureEventAncestors): Add ENABLE(SVG) guards around call to Node::svgShadowHost() since this method is only defined when building with SVG enabled. 2011-04-18 Dominic Cooney Reviewed by Dimitri Glazkov. Makes SVG shadow roots and DOM shadow roots distinct. https://bugs.webkit.org/show_bug.cgi?id=52788 Not a functional change. Covered by existing SVG tests. * dom/EventDispatcher.cpp: (WebCore::findElementInstance): (WebCore::EventDispatcher::adjustToShadowBoundaries): (WebCore::EventDispatcher::adjustRelatedTarget): (WebCore::EventDispatcher::ensureEventAncestors): * dom/Node.cpp: (WebCore::Node::setShadowHost): (WebCore::Node::svgShadowHost): (WebCore::Node::shadowTreeRootNode): * dom/Node.h: (WebCore::Node::isSVGShadowRoot): (WebCore::Node::parentNode): (WebCore::Node::parentNodeGuaranteedHostFree): * rendering/svg/RenderSVGShadowTreeRootContainer.cpp: (WebCore::RenderSVGShadowTreeRootContainer::~RenderSVGShadowTreeRootContainer): (WebCore::RenderSVGShadowTreeRootContainer::updateFromElement): * rendering/svg/SVGShadowTreeElements.cpp: (WebCore::SVGShadowTreeRootElement::SVGShadowTreeRootElement): (WebCore::SVGShadowTreeRootElement::create): (WebCore::SVGShadowTreeRootElement::attachElement): (WebCore::SVGShadowTreeRootElement::clearSVGShadowHost): * rendering/svg/SVGShadowTreeElements.h: (WebCore::SVGShadowTreeRootElement::isSVGShadowRoot): * svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::title): 2011-04-18 Taiju TSUIKI Reviewed by Darin Fisher. Vendor-prefix requestFileSystem in FileSystem API https://bugs.webkit.org/show_bug.cgi?id=58517 Prefix from: - window.requestFileSystem to window.webkitRequestFileSystem - window.resolveLocalFileSystemURL to window.webkitResolveLocalFileSystemURL - window.Flags to window.WebKitFlags - WorkerContext.requestFileSystem to WorkerContext.webkitRequestFileSystem - WorkerContext.resolveLocalFileSystemURL to WorkerContext.webkitResolveLocalFileSystemURL - WorkerContext.Flags to WorkerContext.WebKitFlags * CMakeLists.txt: * CodeGenerators.pri: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSDirectoryEntryCustom.cpp: (WebCore::JSDirectoryEntry::getFile): (WebCore::JSDirectoryEntry::getDirectory): * bindings/js/JSDirectoryEntrySyncCustom.cpp: (WebCore::getFlags): (WebCore::JSDirectoryEntrySync::getFile): (WebCore::JSDirectoryEntrySync::getDirectory): * bindings/v8/custom/V8DirectoryEntryCustom.cpp: (WebCore::V8DirectoryEntry::getDirectoryCallback): (WebCore::V8DirectoryEntry::getFileCallback): * bindings/v8/custom/V8DirectoryEntrySyncCustom.cpp: (WebCore::getFlags): (WebCore::V8DirectoryEntrySync::getDirectoryCallback): (WebCore::V8DirectoryEntrySync::getFileCallback): * fileapi/DOMFileSystemBase.cpp: (WebCore::DOMFileSystemBase::getFile): (WebCore::DOMFileSystemBase::getDirectory): * fileapi/DOMFileSystemBase.h: * fileapi/DirectoryEntry.cpp: (WebCore::DirectoryEntry::getFile): (WebCore::DirectoryEntry::getDirectory): * fileapi/DirectoryEntry.h: * fileapi/DirectoryEntry.idl: * fileapi/DirectoryEntrySync.cpp: (WebCore::DirectoryEntrySync::getFile): (WebCore::DirectoryEntrySync::getDirectory): * fileapi/DirectoryEntrySync.h: * fileapi/DirectoryEntrySync.idl: * fileapi/WebKitFlags.h: Renamed from Source/WebCore/fileapi/Flags.h. (WebCore::WebKitFlags::create): (WebCore::WebKitFlags::isCreate): (WebCore::WebKitFlags::setCreate): (WebCore::WebKitFlags::isExclusive): (WebCore::WebKitFlags::setExclusive): (WebCore::WebKitFlags::WebKitFlags): * fileapi/WebKitFlags.idl: Renamed from Source/WebCore/fileapi/Flags.idl. * page/DOMWindow.cpp: (WebCore::DOMWindow::webkitRequestFileSystem): (WebCore::DOMWindow::webkitResolveLocalFileSystemURL): * page/DOMWindow.h: * page/DOMWindow.idl: * workers/WorkerContext.cpp: (WebCore::WorkerContext::webkitRequestFileSystem): (WebCore::WorkerContext::webkitRequestFileSystemSync): (WebCore::WorkerContext::webkitResolveLocalFileSystemURL): (WebCore::WorkerContext::webkitResolveLocalFileSystemSyncURL): * workers/WorkerContext.h: * workers/WorkerContext.idl: 2011-04-18 Steve Lacey Reviewed by Dimitri Glazkov. Decouple media controls usage from implementation. This allows each port to implement thier own controls in a different manner to the default webkit implementation. Convert media controls hooks to a client interface https://bugs.webkit.org/show_bug.cgi?id=58346 No new tests as there is no functional change. * Android.mk: * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaControls): (WebCore::HTMLMediaElement::ensureMediaControls): (WebCore::HTMLMediaElement::preDispatchEventHandler): * html/HTMLMediaElement.h: * html/shadow/MediaControlElements.cpp: (WebCore::MediaControlPanelMuteButtonElement::MediaControlPanelMuteButtonElement): (WebCore::MediaControlPanelMuteButtonElement::create): (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): (WebCore::MediaControlTimelineElement::create): (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): (WebCore::MediaControlFullscreenButtonElement::create): * html/shadow/MediaControlElements.h: * html/shadow/MediaControlRootElement.cpp: (WebCore::MediaControlRootElement::MediaControlRootElement): (WebCore::MediaControls::create): * html/shadow/MediaControlRootElement.h: * html/shadow/MediaControls.cpp: Added. (WebCore::MediaControls::MediaControls): * html/shadow/MediaControls.h: Added. (WebCore::MediaControls::~MediaControls): 2011-04-18 Pascal Massimino Reviewed by Adam Barth. Add incremental decoding to WebP decoder https://bugs.webkit.org/show_bug.cgi?id=58851 No new tests, as it's not possible for the layout test framework to force the decoders to decode incrementally. * platform/image-decoders/webp/WEBPImageDecoder.cpp: (WebCore::WEBPImageDecoder::WEBPImageDecoder): (WebCore::WEBPImageDecoder::decode): * platform/image-decoders/webp/WEBPImageDecoder.h: 2011-04-18 Daniel Bates Reviewed by Adam Roben. With PAN_SCROLLING, mousedown events for a mouse button aren't dispatched while pressing-and-holding another mouse button https://bugs.webkit.org/show_bug.cgi?id=58700 Fixes an issue where mousedown events weren't dispatched when pressing a mouse button A while pressing and holding a mouse button B, where A != B. This issue only affects builds that enable PAN_SCROLLING. On mouse press with autoscroll in progress (m_autoscrollInProgress == true) we stopped the autoscroll timer, invalidated the click, and swallowed the mouse press. Instead, we should only stop the autoscroll timer. Test: fast/events/fire-mousedown-while-pressing-mouse-button.html * page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEvent): 2011-04-18 Jon Lee Reviewed by Maciej Stachowiak. With overlay scrollbars, textarea resize corner gains borders when the textarea becomes scrollable https://bugs.webkit.org/show_bug.cgi?id=58617 * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintResizer): Check for overlay scrollbars first, and then if the bars were created, before displaying the borders 2011-04-18 Jon Lee Reviewed by Maciej Stachowiak. Selected item background in list box gets rendered on top of overlay scrollbar knob (58824) https://bugs.webkit.org/show_bug.cgi?id=58824 * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintObject): Moving the stage of painting the scrollbars to the foreground if using overlay scrollbars 2011-04-18 John Bauman Reviewed by Kenneth Russell. Don't cast BitmapImageSingleFrameSkia to BitmapImage https://bugs.webkit.org/show_bug.cgi?id=58821 BitmapImageSingleFrameSkia has isBitmap return true, but can't be cast to a BitmapImage. Instead of using BitmapImage, use isOpaque from SkBitmap to determine if the image has alpha. No new tests. * platform/graphics/skia/GraphicsContext3DSkia.cpp: (WebCore::GraphicsContext3D::getImageData): 2011-04-18 Jessie Berlin Reviewed by Steve Falkenburg. If deleting the StorageTracker.db file fails, local storage is left in a strange state. https://bugs.webkit.org/show_bug.cgi?id=58805 * storage/StorageTracker.cpp: (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase): When cleaning up the StorageTracker.db file, is not enough to call syncDeleteOrigin. deleteOrigin itself must be called to update the data structures that syncDeleteOrigin depends on and to prevent clashes between a theoretical web page editing local storage at the same time this method is called. (WebCore::StorageTracker::syncDeleteAllOrigins): If it is not possible to delete the StorageTracker.db file, empty it. (WebCore::StorageTracker::deleteOriginOnMainThread): Wrapper for deleteOrigin. * storage/StorageTracker.h: 2011-04-18 Geoffrey Garen Build fix. Added back missing #include. * bindings/js/DOMWrapperWorld.cpp: 2011-04-18 Enrica Casucci Reviewed by Maciej Stachowiak. Dropping a file in a WKView (WebKit2) doesn't load the file. https://bugs.webkit.org/show_bug.cgi?id=58842 The URL string for the file contains an extra %00 at the end that causes the network framework to fail to load the file. * platform/win/ClipboardUtilitiesWin.cpp: (WebCore::getURL): 2011-04-18 Geoffrey Garen Discovered and rubber-stamped by Stephanie Lewis. Restored some code I accidentally deleted in * bindings/js/DOMWrapperWorld.cpp: (WebCore::DOMWrapperWorld::~DOMWrapperWorld): (WebCore::DOMWrapperWorld::clearWrappers): Do clear / destroy all our window shells when clearing / destroying ourselves. r83990 removed this behavior for documents since there are no per-document maps anymore, but removing this behavior for window shells too was a typo. 2011-04-18 Geoffrey Garen Reviewed by Oliver Hunt. Made DOM handle ownership customizable, and customized it for Nodes and NamedAttrMaps https://bugs.webkit.org/show_bug.cgi?id=58828 * WebCore.exp.in: Blah. * bindings/js/DOMWrapperWorld.cpp: Moved code related to JSNode ownership to JSNodeCustom, where other custom JSNode-related code goes. (WebCore::JSDOMWrapperOwner::finalize): (WebCore::DOMWrapperWorld::DOMWrapperWorld): * bindings/js/DOMWrapperWorld.h: (WebCore::JSDOMWrapperOwner::JSDOMWrapperOwner): (WebCore::DOMWrapperWorld::defaultWrapperOwner): Renamed DOMObjectHandleOwner to JSDOMWrapperOwner, to match the name of JSDOMWrapper. * bindings/js/JSArrayBufferViewHelper.h: (WebCore::toJSArrayBufferView): * bindings/js/JSCSSRuleCustom.cpp: (WebCore::toJS): * bindings/js/JSCSSValueCustom.cpp: (WebCore::toJS): * bindings/js/JSCanvasRenderingContextCustom.cpp: (WebCore::toJS): Removed "DOMObject" and "Node" from the names of wrapper- related functions, since there is no meaningful distinction between the two anymore -- they both use the same extensible interface. * bindings/js/JSDOMBinding.cpp: Removed some now-unused functions. * bindings/js/JSDOMBinding.h: (WebCore::getInlineCachedWrapper): (WebCore::setInlineCachedWrapper): (WebCore::clearInlineCachedWrapper): (WebCore::wrapperOwner): (WebCore::wrapperContext): (WebCore::getCachedWrapper): (WebCore::cacheWrapper): (WebCore::uncacheWrapper): (WebCore::createWrapper): (WebCore::wrap): Created a generic, extensible mechanism for creating, caching, retrieving, marking, and destroying DOM wrappers. This eliminates the difference between DOM object wrappers and DOM node wrappers, and lays the groundwork for getting rid of MarkStack::deprecatedAppend usage for marking the remainder of our DOM objects. * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::history): (WebCore::JSDOMWindow::location): * bindings/js/JSDataViewCustom.cpp: (WebCore::toJS): * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::location): (WebCore::toJS): * bindings/js/JSElementCustom.cpp: (WebCore::toJSNewlyCreated): * bindings/js/JSEventCustom.cpp: (WebCore::toJS): * bindings/js/JSHTMLCollectionCustom.cpp: (WebCore::toJS): * bindings/js/JSImageDataCustom.cpp: (WebCore::toJS): Updated for renames mentioned above. * bindings/js/JSNamedNodeMapCustom.cpp: (WebCore::JSNamedNodeMapOwner::isReachableFromOpaqueRoots): (WebCore::JSNamedNodeMapOwner::finalize): (WebCore::wrapperOwner): (WebCore::wrapperContext): (WebCore::JSNamedNodeMap::markChildren): (WebCore::toJS): Updated to use our new interface for customizing wrapper lifetime management through function overloading without using MarkStack::deprecatedAppend. * bindings/js/JSNodeCustom.cpp: (WebCore::isObservable): (WebCore::isReachableFromDOM): (WebCore::JSNodeOwner::isReachableFromOpaqueRoots): (WebCore::JSNodeOwner::finalize): (WebCore::createWrapperInline): Moved node-related code from JSDOMBinding to here. Removed special case marking code for JSNamedNodeMap because JSNamedNodeMap now knows how to maintain its own lifetime invariants. * bindings/js/JSNodeCustom.h: (WebCore::wrapperOwner): (WebCore::wrapperContext): (WebCore::getInlineCachedWrapper): (WebCore::setInlineCachedWrapper): (WebCore::clearInlineCachedWrapper): (WebCore::toJS): Updated to use our new interface for customizing wrapper lifetime management through function overloading without using MarkStack::deprecatedAppend or special-case code for nodes. * bindings/js/JSSVGPathSegCustom.cpp: (WebCore::toJS): * bindings/js/JSStyleSheetCustom.cpp: (WebCore::toJS): Updated for renames mentioned above. * bindings/scripts/CodeGeneratorJS.pm: Fixed up newlines. Updated for renames mentioned above. * dom/NamedNodeMap.idl: NamedNodeMap needs a custom toJS function now because it needs to provide a custom WeakHandleOwner at wrapper creation time. 2011-04-18 Jessie Berlin Rubber-stamped by Sam Weinig. REGRESSION (r84094): Many tests failing assertions in WebCore::localizedString on Windows. https://bugs.webkit.org/show_bug.cgi?id=58747 Copy the WebCore Localizable.strings file into the output directory. * WebCore.vcproj/WebCoreGenerated.vcproj: * WebCore.vcproj/WebCoreGeneratedCairo.vsprops: * WebCore.vcproj/WebCoreGeneratedCommon.vsprops: * WebCore.vcproj/copyInspectorFiles.cmd: Removed. * WebCore.vcproj/copyWebCoreResourceFiles.cmd: Copied from Source/WebCore/WebCore.vcproj/copyInspectorFiles.cmd. 2011-04-18 Robert Hogan Reviewed by Andreas Kling. [Qt] PluginViewQt needs to update geometry of plugin widget before scheduling a repaint When scheduling a repaint for the plugin's widget, PluginViewQt needs to make sure the widget's geometry is up to date. Otherwise the paint event happens on the widget's old location. https://bugs.webkit.org/show_bug.cgi?id=57179 Added a manual test. * manual-tests/qt/plugin-painting.html: Added. * plugins/qt/PluginViewQt.cpp: (WebCore::PluginView::updatePluginWidget): (WebCore::PluginView::invalidateRect): 2011-04-18 Oliver Hunt Fix Qt build * bridge/qt/qt_class.cpp: (JSC::Bindings::QtClass::fallbackObject): * bridge/qt/qt_instance.cpp: (JSC::Bindings::QtInstance::removeCachedMethod): * bridge/qt/qt_instance.h: 2011-04-18 Oliver Hunt Reviewed by Gavin Barraclough. Remove DeprecatedPtr https://bugs.webkit.org/show_bug.cgi?id=58718 Replace use of DeprecatedPtr<> with Global<> as ownership rules aren't obvious, have filed bug #58820 on seeing if this is safe. * bridge/qt/qt_class.cpp: (JSC::Bindings::QtClass::fallbackObject): * bridge/qt/qt_instance.cpp: (JSC::Bindings::QtInstance::removeCachedMethod): (JSC::Bindings::QtInstance::markAggregate): * bridge/qt/qt_instance.h: 2011-04-14 Matthew Delaney Reviewed by Simon Fraser. [CG] Use vImage (un)premultiplyImageData functions for get/putImageData with IOSurfaces https://bugs.webkit.org/show_bug.cgi?id=58088 * platform/graphics/cg/ImageBufferDataCG.cpp: (WebCore::convertScanline): un/premultiplies and converts a scanline of image data from/to BGRA to/from RGBA (WebCore::unpremultitplyScanline): (WebCore::premultitplyScanline): (WebCore::ImageBufferData::getData): (WebCore::ImageBufferData::putData): 2011-04-18 Jeff Miller Reviewed by Dan Bernstein. Allow all log channels to be initialized from WebCoreLogLevel Windows environment variable https://bugs.webkit.org/show_bug.cgi?id=58811 * platform/win/LoggingWin.cpp: (WebCore::InitializeLoggingChannelsIfNecessary): Support initializing LogResourceLoading, LogProgress, and LogFileAPI from WebCoreLogLevel Windows environment variable. 2011-04-18 Andrew Scherkus Reviewed by Eric Seidel. Reset fullscreen element reference when leaving fullscreen mode and some other cleanup. https://bugs.webkit.org/show_bug.cgi?id=58719 Test: fullscreen/full-screen-cancel.html * dom/Document.cpp: (WebCore::Document::Document): Remove m_isFullscreen. (WebCore::Document::webkitWillEnterFullScreenForElement): (WebCore::Document::webkitWillExitFullScreenForElement): Remove duplicate call to setAnimating(). (WebCore::Document::webkitDidExitFullScreenForElement): Reset m_fullScreenElement reference. * dom/Document.h: (WebCore::Document::webkitIsFullScreen): Use m_fullScreenElement instead of m_isFullscreen. (WebCore::Document::webkitFullScreenKeyboardInputAllowed): Ditto. 2011-04-18 Dan Bernstein Reviewed by Eric Seidel. REGRESSION (r81992): Facebook photo tags can get cut off when moving the mouse. https://bugs.webkit.org/show_bug.cgi?id=58500 Test: fast/repaint/text-in-relative-positioned-inline.html * rendering/RenderText.cpp: (WebCore::RenderText::clippedOverflowRectForRepaint): Use the container’s repaint rect, not the containing block’s. This matters when the containing block is outside the RenderText’s enclosing layer, as is the case here. 2011-04-15 Stephen White Reviewed by Kenneth Russell. Speed up DrawingBuffer::reset(). https://bugs.webkit.org/show_bug.cgi?id=58706 When DrawingBuffer::reset() is called, it should not reallocate the FBOs if the size has not changed. It should just do a glClear(). Covered by tests in fast/canvas and canvas/philip. * platform/graphics/chromium/DrawingBufferChromium.cpp: (WebCore::DrawingBuffer::DrawingBuffer): Initialize the size to -1, -1, so the size change check will work on first reset. * platform/graphics/gpu/DrawingBuffer.cpp: (WebCore::DrawingBuffer::reset): If the size hasn't changed, don't resize the FBOs. Just clear the relevant buffers. 2011-04-18 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: group resources by type in the resources panel. https://bugs.webkit.org/show_bug.cgi?id=58796 * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype._frameAdded): (WebInspector.ResourcesPanel.prototype._resourceAdded): (WebInspector.BaseStorageTreeElement): (WebInspector.BaseStorageTreeElement.prototype.onattach): (WebInspector.StorageCategoryTreeElement): (WebInspector.FrameTreeElement): (WebInspector.FrameTreeElement.prototype.setTitles): (WebInspector.FrameTreeElement.prototype.set hovered): (WebInspector.FrameTreeElement.prototype.appendResource): (WebInspector.FrameTreeElement.prototype.appendChild): (WebInspector.FrameTreeElement.prototype._insertInPresentationOrder): (WebInspector.FrameTreeElement.prototype._insertInPresentationOrder.compare): 2011-04-18 Timothy Hatcher Make update-webkit-localizable-strings put WebKit/win strings in WebCore now that all localized strings in WebKit/win use WEB_UI_STRING. https://webkit.org/b/58747 Reviewed by Dan Bernstein. * English.lproj/Localizable.strings: Updated with strings from WebKit/win. 2011-04-15 MORITA Hajime Reviewed by Adam Barth. REGRESSION: doesn't animate if it doesn't have value https://bugs.webkit.org/show_bug.cgi?id=58693 The initial value of RenderProgress::m_position is accidentally same as the indeterminate value, that makes update code on updateFromElement() skipped. This change set unique invalid value for the initial value of m_position. No new tests. Testing animated bar is not possible with DRT. * html/HTMLProgressElement.cpp: (WebCore::HTMLProgressElement::position): * html/HTMLProgressElement.h: * rendering/RenderProgress.cpp: (WebCore::RenderProgress::RenderProgress): (WebCore::RenderProgress::isDeterminate): 2011-04-18 MORITA Hajime Reviewed by Eric Seidel. REGRESSION: [Chromium Win] details-add-summary-1.html start crashing after r84039 https://bugs.webkit.org/show_bug.cgi?id=58791 On refreshMainSummary(), findMainSummary() possibly releases oldSummary. We should guard it again RefPtr. * html/HTMLDetailsElement.cpp: (WebCore::HTMLDetailsElement::refreshMainSummary): 2011-04-18 Antti Koivisto Reviewed by Simon Fraser. CSSSelector double frees https://bugs.webkit.org/show_bug.cgi?id=56124 In all stacks this is occuring when the document is kept alive by the guard ref only and the node holding it is deleted. As a speculative fix, clear the document stylesheets when it turns into a guard ref zombie. This has a pretty good chance of fixing the actual bug. At minimum it will move the crash to an earlier, more easily traceble point. No tests, crash stacks only, no idea how to reproduce. * dom/Document.cpp: (WebCore::Document::removedLastRef): 2011-04-18 Alexander Pavlov Reviewed by Yury Semikhatsky. Web Inspector: Backspace in the Console is broken https://bugs.webkit.org/show_bug.cgi?id=58764 * inspector/front-end/inspector.js: (WebInspector.documentKeyDown): 2011-04-18 Hans Wennborg Reviewed by Steve Block. LevelDB backend for IndexedDB https://bugs.webkit.org/show_bug.cgi?id=57372 Only available behind a run-time flag. Covered by existing layout tests. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * GNUmakefile.list.am: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.xcodeproj/project.pbxproj: * platform/leveldb/LevelDBComparator.h: Added. (WebCore::LevelDBComparator::~LevelDBComparator): * platform/leveldb/LevelDBDatabase.cpp: Added. (WebCore::makeSlice): (WebCore::makeLevelDBSlice): (WebCore::makeVector): (WebCore::LevelDBDatabase::LevelDBDatabase): (WebCore::LevelDBDatabase::~LevelDBDatabase): (WebCore::LevelDBDatabase::open): (WebCore::LevelDBDatabase::put): (WebCore::LevelDBDatabase::remove): (WebCore::LevelDBDatabase::get): (WebCore::LevelDBDatabase::newIterator): * platform/leveldb/LevelDBDatabase.h: Added. * platform/leveldb/LevelDBIterator.cpp: Added. (WebCore::LevelDBIterator::~LevelDBIterator): (WebCore::LevelDBIterator::LevelDBIterator): (WebCore::makeSlice): (WebCore::makeLevelDBSlice): (WebCore::LevelDBIterator::isValid): (WebCore::LevelDBIterator::seekToLast): (WebCore::LevelDBIterator::seek): (WebCore::LevelDBIterator::next): (WebCore::LevelDBIterator::prev): (WebCore::LevelDBIterator::key): (WebCore::LevelDBIterator::value): * platform/leveldb/LevelDBIterator.h: Added. * platform/leveldb/LevelDBSlice.h: Added. (WebCore::LevelDBSlice::LevelDBSlice): (WebCore::LevelDBSlice::~LevelDBSlice): (WebCore::LevelDBSlice::begin): (WebCore::LevelDBSlice::end): * storage/IDBLevelDBBackingStore.cpp: (WebCore::encodeByte): (WebCore::maxIDBKey): (WebCore::minIDBKey): (WebCore::encodeInt): (WebCore::decodeInt): (WebCore::encodeVarInt): (WebCore::decodeVarInt): (WebCore::encodeString): (WebCore::decodeString): (WebCore::encodeStringWithLength): (WebCore::decodeStringWithLength): (WebCore::encodeDouble): (WebCore::decodeDouble): (WebCore::encodeIDBKey): (WebCore::decodeIDBKey): (WebCore::extractEncodedIDBKey): (WebCore::compareEncodedIDBKeys): (WebCore::getInt): (WebCore::putInt): (WebCore::getString): (WebCore::putString): (WebCore::KeyPrefix::SchemaVersionKey::encode): (WebCore::KeyPrefix::MaxDatabaseIdKey::encode): (WebCore::KeyPrefix::DatabaseFreeListKey::DatabaseFreeListKey): (WebCore::KeyPrefix::DatabaseFreeListKey::decode): (WebCore::KeyPrefix::DatabaseFreeListKey::encode): (WebCore::KeyPrefix::DatabaseFreeListKey::databaseId): (WebCore::KeyPrefix::DatabaseFreeListKey::compare): (WebCore::KeyPrefix::DatabaseNameKey::decode): (WebCore::KeyPrefix::DatabaseNameKey::encode): (WebCore::KeyPrefix::DatabaseNameKey::origin): (WebCore::KeyPrefix::DatabaseNameKey::databaseName): (WebCore::KeyPrefix::DatabaseNameKey::compare): (WebCore::KeyPrefix::DatabaseMetaDataKey::encode): (WebCore::KeyPrefix::ObjectStoreMetaDataKey::ObjectStoreMetaDataKey): (WebCore::KeyPrefix::ObjectStoreMetaDataKey::decode): (WebCore::KeyPrefix::ObjectStoreMetaDataKey::encode): (WebCore::KeyPrefix::ObjectStoreMetaDataKey::objectStoreId): (WebCore::KeyPrefix::ObjectStoreMetaDataKey::metaDataType): (WebCore::KeyPrefix::ObjectStoreMetaDataKey::compare): (WebCore::KeyPrefix::IndexMetaDataKey::IndexMetaDataKey): (WebCore::KeyPrefix::IndexMetaDataKey::decode): (WebCore::KeyPrefix::IndexMetaDataKey::encode): (WebCore::KeyPrefix::IndexMetaDataKey::compare): (WebCore::KeyPrefix::IndexMetaDataKey::indexId): (WebCore::KeyPrefix::IndexMetaDataKey::metaDataType): (WebCore::KeyPrefix::ObjectStoreFreeListKey::ObjectStoreFreeListKey): (WebCore::KeyPrefix::ObjectStoreFreeListKey::decode): (WebCore::KeyPrefix::ObjectStoreFreeListKey::encode): (WebCore::KeyPrefix::ObjectStoreFreeListKey::objectStoreId): (WebCore::KeyPrefix::ObjectStoreFreeListKey::compare): (WebCore::KeyPrefix::IndexFreeListKey::IndexFreeListKey): (WebCore::KeyPrefix::IndexFreeListKey::decode): (WebCore::KeyPrefix::IndexFreeListKey::encode): (WebCore::KeyPrefix::IndexFreeListKey::compare): (WebCore::KeyPrefix::IndexFreeListKey::objectStoreId): (WebCore::KeyPrefix::IndexFreeListKey::indexId): (WebCore::KeyPrefix::ObjectStoreNamesKey::decode): (WebCore::KeyPrefix::ObjectStoreNamesKey::encode): (WebCore::KeyPrefix::ObjectStoreNamesKey::compare): (WebCore::KeyPrefix::ObjectStoreNamesKey::objectStoreName): (WebCore::KeyPrefix::IndexNamesKey::IndexNamesKey): (WebCore::KeyPrefix::IndexNamesKey::decode): (WebCore::KeyPrefix::IndexNamesKey::encode): (WebCore::KeyPrefix::IndexNamesKey::compare): (WebCore::KeyPrefix::IndexNamesKey::indexName): (WebCore::KeyPrefix::ObjectStoreDataKey::decode): (WebCore::KeyPrefix::ObjectStoreDataKey::encode): (WebCore::KeyPrefix::ObjectStoreDataKey::compare): (WebCore::KeyPrefix::ObjectStoreDataKey::userKey): (WebCore::KeyPrefix::ExistsEntryKey::decode): (WebCore::KeyPrefix::ExistsEntryKey::encode): (WebCore::KeyPrefix::ExistsEntryKey::compare): (WebCore::KeyPrefix::ExistsEntryKey::userKey): (WebCore::KeyPrefix::IndexDataKey::IndexDataKey): (WebCore::KeyPrefix::IndexDataKey::decode): (WebCore::KeyPrefix::IndexDataKey::encode): (WebCore::KeyPrefix::IndexDataKey::encodeMaxKey): (WebCore::KeyPrefix::IndexDataKey::compare): (WebCore::KeyPrefix::IndexDataKey::databaseId): (WebCore::KeyPrefix::IndexDataKey::objectStoreId): (WebCore::KeyPrefix::IndexDataKey::indexId): (WebCore::KeyPrefix::IndexDataKey::userKey): (WebCore::KeyPrefix::realCompare): (WebCore::KeyPrefix::compareKeys): (WebCore::KeyPrefix::compareIndexKeys): (WebCore::KeyPrefix::Comparator::compare): (WebCore::KeyPrefix::Comparator::name): (WebCore::setUpMetadata): (WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore): (WebCore::IDBLevelDBBackingStore::open): (WebCore::IDBLevelDBBackingStore::extractIDBDatabaseMetaData): (WebCore::getNewDatabaseId): (WebCore::IDBLevelDBBackingStore::setIDBDatabaseMetaData): (WebCore::IDBLevelDBBackingStore::getObjectStores): (WebCore::getNewObjectStoreId): (WebCore::IDBLevelDBBackingStore::createObjectStore): (WebCore::deleteRange): (WebCore::IDBLevelDBBackingStore::deleteObjectStore): (WebCore::IDBLevelDBBackingStore::getObjectStoreRecord): (WebCore::getNewVersionNumber): (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord): (WebCore::IDBLevelDBBackingStore::clearObjectStore): (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier): (WebCore::IDBLevelDBBackingStore::deleteObjectStoreRecord): (WebCore::IDBLevelDBBackingStore::nextAutoIncrementNumber): (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore): (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord): (WebCore::IDBLevelDBBackingStore::getIndexes): (WebCore::getNewIndexId): (WebCore::IDBLevelDBBackingStore::createIndex): (WebCore::IDBLevelDBBackingStore::deleteIndex): (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord): (WebCore::findGreatestKeyLessThan): (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord): (WebCore::IDBLevelDBBackingStore::getObjectViaIndex): (WebCore::versionExists): (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex): (WebCore::IDBLevelDBBackingStore::keyExistsInIndex): (WebCore::findLastIndexKeyEqualTo): (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor): (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor): (WebCore::IDBLevelDBBackingStore::openIndexCursor): (WebCore::IDBLevelDBBackingStore::createTransaction): * storage/IDBLevelDBBackingStore.h: 2011-04-18 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: add test for CSS-resource binding. https://bugs.webkit.org/show_bug.cgi?id=58786 Test: inspector/styles/styles-history.html * inspector/InspectorCSSAgent.cpp: (WebCore::InspectorCSSAgent::setPropertyText): (WebCore::InspectorCSSAgent::toggleProperty): * inspector/InspectorStyleSheet.cpp: (WebCore::InspectorStyle::setPropertyText): (WebCore::InspectorStyle::toggleProperty): (WebCore::InspectorStyleSheet::setPropertyText): (WebCore::InspectorStyleSheet::toggleProperty): * inspector/InspectorStyleSheet.h: * inspector/front-end/CSSStyleModel.js: (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged.if): (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged.mycallback): (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged): (WebInspector.CSSStyleModel.prototype.setStyleSheetText): (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt): (WebInspector.CSSProperty.prototype.setText.callback): (WebInspector.CSSProperty.prototype.setText): 2011-04-18 Sheriff Bot Unreviewed, rolling out r83996. http://trac.webkit.org/changeset/83996 https://bugs.webkit.org/show_bug.cgi?id=58790 layout test editing/selection/move-by-word-visually.html is failing (Requested by jknotten on #webkit). * editing/visible_units.cpp: (WebCore::nextWordBreakInBoxInsideBlockWithDifferentDirectionality): (WebCore::collectWordBreaksInBoxInsideBlockWithDifferntDirectionality): (WebCore::previousWordBreakInBox): (WebCore::leftWordBoundary): (WebCore::rightWordBoundary): (WebCore::leftWordPosition): (WebCore::rightWordPosition): 2011-04-18 Adam Bergkvist Reviewed by Daniel Bates. Modify make_names.pl to not include conditional includes unconditionally https://bugs.webkit.org/show_bug.cgi?id=53672 Fixed conditional includes being unconditionally included. No new tests (no change in functionality) * dom/make_names.pl: - Modified printJSElementIncludes() to only print unconditional element includes. - Modified printElementIncludes() to only print unconditional element includes. - Added printConditionalElementIncludes() which takes care of printing conditional element includes. 2011-04-18 Sheriff Bot Unreviewed, rolling out r83803. http://trac.webkit.org/changeset/83803 https://bugs.webkit.org/show_bug.cgi?id=58782 Caused focus rings to appear in youtube videos (Requested by inferno-sec on #webkit). * rendering/RenderWidget.cpp: (WebCore::RenderWidget::paint): 2011-04-18 Alexander Pavlov Reviewed by Pavel Feldman. Web Inspector: Need a workaround for bug 58422 https://bugs.webkit.org/show_bug.cgi?id=58780 Instead of the A:before content, the link text is displayed as the A tag content. * inspector/front-end/StylesSidebarPane.js: (WebInspector.StylePropertiesSection.linkifyUncopyable): (WebInspector.StylePropertiesSection): * inspector/front-end/inspector.css: 2011-04-18 Carlos Garcia Campos Unreviewed. Fix WebKit2 GTK build after 82465. * platform/gtk/LocalizedStringsGtk.cpp: (WebCore::localizedString): 2011-04-18 Andrey Adaikin Reviewed by Yury Semikhatsky. Web Inspector: TAB should not move focus from the text editor while live editing https://bugs.webkit.org/show_bug.cgi?id=58537 * inspector/front-end/TextViewer.js: (WebInspector.TextViewer.prototype._registerShortcuts): (WebInspector.TextViewer.prototype._cancelEditing): (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo): (WebInspector.TextEditorMainPanel.prototype.handleTabKeyPress): (WebInspector.TextEditorMainPanel.prototype._setCaretLocation): (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates): (WebInspector.TextEditorMainPanel.prototype._setText): 2011-04-18 Alexander Pavlov Reviewed by Yury Semikhatsky. Web Inspector: Incorrect content area dimensions in Metrics pane for box-sizing: border-box https://bugs.webkit.org/show_bug.cgi?id=58551 Test: inspector/styles/metrics-box-sizing.html * inspector/front-end/MetricsSidebarPane.js: (WebInspector.MetricsSidebarPane.prototype._getPropertyValueAsPx): (WebInspector.MetricsSidebarPane.prototype._getBox): (WebInspector.MetricsSidebarPane.prototype._update.getContentAreaWidthPx): (WebInspector.MetricsSidebarPane.prototype._update.getContentAreaHeightPx): (WebInspector.MetricsSidebarPane.prototype._update): (WebInspector.MetricsSidebarPane.prototype.startEditing): (WebInspector.MetricsSidebarPane.prototype.editingCommitted.setEnabledValueCallback): (WebInspector.MetricsSidebarPane.prototype.editingCommitted): 2011-04-18 Ilya Tikhonovsky Reviewed by Yury Semikhatsky. Web Inspector: Database agent stops to propagate it's events after navigation. https://bugs.webkit.org/show_bug.cgi?id=58776 * inspector/InspectorAgent.cpp: (WebCore::InspectorAgent::InspectorAgent): (WebCore::InspectorAgent::restoreInspectorStateFromCookie): * inspector/InspectorDatabaseAgent.cpp: (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent): (WebCore::InspectorDatabaseAgent::clearFrontend): (WebCore::InspectorDatabaseAgent::enable): (WebCore::InspectorDatabaseAgent::disable): (WebCore::InspectorDatabaseAgent::restore): * inspector/InspectorDatabaseAgent.h: (WebCore::InspectorDatabaseAgent::create): 2011-04-18 Sheriff Bot Unreviewed, rolling out r83968. http://trac.webkit.org/changeset/83968 https://bugs.webkit.org/show_bug.cgi?id=58769 Breaks Backspace in Web Inspector console (Requested by apavlov on #webkit). * inspector/front-end/inspector.js: (WebInspector.documentKeyDown): 2011-04-15 Yury Semikhatsky Reviewed by Pavel Feldman. Web Inspector: introduce WorkerInspectorController https://bugs.webkit.org/show_bug.cgi?id=58668 WorkerInspectorController will be owned by WorkerContext and will hold all inspector agents and will also manage connection to the inspector frontend. * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/ScriptState.cpp: (WebCore::scriptStateFromWorkerContext): * bindings/js/ScriptState.h: * bindings/v8/ScriptState.cpp: (WebCore::scriptStateFromWorkerContext): * bindings/v8/ScriptState.h: * inspector/InspectorState.cpp: (WebCore::InspectorState::updateCookie): * inspector/WorkerInspectorController.cpp: Added. (WebCore::WorkerInspectorController::WorkerInspectorController): (WebCore::WorkerInspectorController::~WorkerInspectorController): (WebCore::WorkerInspectorController::connectFrontend): (WebCore::WorkerInspectorController::disconnectFrontend): (WebCore::WorkerInspectorController::dispatchMessageFromFrontend): * inspector/WorkerInspectorController.h: Copied from Source/WebCore/bindings/js/ScriptState.h. * workers/WorkerContext.cpp: (WebCore::WorkerContext::WorkerContext): * workers/WorkerContext.h: (WebCore::WorkerContext::workerInspectorController): 2011-04-17 Thierry Reding Reviewed by Adam Barth. Fix build with GCC 4.6. * dom/make_names.pl: Execute preprocessor without the -P option. The preprocessor in GCC 4.6 eats empty lines, effectively breaking the parsing performed by this script. Dropping the -P option when invoking the preprocessor keeps the empty lines but as a side-effect also adds additional linemarkers. From the cpp manpage: -P Inhibit generation of linemarkers in the output from the preprocessor. This might be useful when running the preprocessor on something that is not C code, and will be sent to a program which might be confused by the linemarkers. The linemarkers are not problematic, however, because the script properly handles them by ignoring all lines starting with a #. 2011-04-17 David Kilzer Switch HTTP pipelining from user default to private setting Reviewed by Dan Bernstein. This replaces support for the WebKitEnableHTTPPipelining user default with methods on the WebCore::ResourceRequest class in WebCore, the WebView class in WebKit1, and the WebContext class in WebKit2. It also removes support for the WebKitForceHTTPPipeliningPriorityHigh user default which was not needed. Run these commands if you set the user defaults previously, replacing "BUNDLE.ID" with your application's bundle ID: defaults delete BUNDLE.ID WebKitEnableHTTPPipelining defaults delete BUNDLE.ID WebKitForceHTTPPipeliningPriorityHigh * WebCore.exp.in: Export ResourceRequest::httpPipeliningEnabled() and ResourceRequest::setHTTPPipeliningEnabled(). * platform/network/ResourceRequestBase.h: (WebCore::isHTTPPipeliningEnabled): Removed declaration. (WebCore::shouldForceHTTPPipeliningPriorityHigh): Removed declaration. * platform/network/cf/ResourceRequest.h: (WebCore::ResourceRequest::httpPipeliningEnabled): Added declaration. (WebCore::ResourceRequest::setHTTPPipeliningEnabled): Added declaration. (WebCore::ResourceRequest::s_httpPipeliningEnabled): Added declaration. * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::s_httpPipeliningEnabled): Added. (WebCore::ResourceRequest::httpPipeliningEnabled): Added. (WebCore::ResourceRequest::setHTTPPipeliningEnabled): Added. (WebCore::initializeMaximumHTTPConnectionCountPerHost): Switched to use ResourceRequest::httpPipeliningEnabled(). (WebCore::readBooleanPreference): Removed. (WebCore::isHTTPPipeliningEnabled): Removed. (WebCore::shouldForceHTTPPipeliningPriorityHigh): Removed. * platform/network/mac/ResourceRequestMac.mm: (WebCore::ResourceRequest::doUpdateResourceRequest): Switched to use ResourceRequest::httpPipeliningEnabled(). Removed check for shouldForceHTTPPipeliningPriorityHigh(). (WebCore::ResourceRequest::doUpdatePlatformRequest): Ditto. 2011-04-17 Dan Bernstein Reviewed by Maciej Stachowiak. REGRESSION (r84096):
moved to the right in fast/block/float/032.html https://bugs.webkit.org/show_bug.cgi?id=58736 * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::appendFloatingObjectToLastLine): It is enough to extend the float so that it touches the bottom of the previous line, since RenderBlock::markLinesDirtyInBlockRange() always dirties the line after the last one in the range. 2011-04-17 Patrick Gansterer Unreviewed. Add missing include to fix build without precompiled header. * rendering/RenderMediaControls.cpp: 2011-04-17 Daniel Bates Attempt to fix the Chromium build after changeset 84110 (https://bugs.webkit.org/show_bug.cgi?id=57842). * loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::canRequest): Rename CachedResource::LinkPrefetch to CachedResource::LinkResource. 2011-04-17 Patrick Gansterer Reviewed by Eric Seidel. Remove pthread dependency of GCController https://bugs.webkit.org/show_bug.cgi?id=54833 * bindings/js/GCController.cpp: (WebCore::GCController::garbageCollectOnAlternateThreadForDebugging): 2011-04-17 Gavin Peters Reviewed by Adam Barth. Add support for link rel type "subresource" https://bugs.webkit.org/show_bug.cgi?id=57842 Link rel=prefetch is great for cache warming for resources on subsequent pages, but it launches requests at too low a priority to use for subresources of the current page. Particularly after https://bugs.webkit.org/show_bug.cgi?id=51940 is implemented, a rel type that launches requests at an higher priority is going to be very useful. This rel type is in the HTML5 spec at http://wiki.whatwg.org/wiki/RelExtensions . An expected use case will be for servers to provide subresource hints in link headers, which will allow servers to help make the web faster. This feature continues my implementation of the Link header, which we've talked about in WebKit-dev in https://lists.webkit.org/pipermail/webkit-dev/2011-February/016034.html. Tests: fast/dom/HTMLLinkElement/subresource.html http/tests/misc/link-rel-prefetch-and-subresource.html * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::~HTMLLinkElement): (WebCore::HTMLLinkElement::tokenizeRelAttribute): (WebCore::HTMLLinkElement::process): (WebCore::HTMLLinkElement::onloadTimerFired): (WebCore::HTMLLinkElement::notifyFinished): * html/HTMLLinkElement.h: (WebCore::HTMLLinkElement::RelAttribute::RelAttribute): * loader/cache/CachedResource.cpp: (WebCore::defaultPriorityForResourceType): * loader/cache/CachedResource.h: (WebCore::CachedResource::isLinkResource): * loader/cache/CachedResourceLoader.cpp: (WebCore::createResource): (WebCore::CachedResourceLoader::requestLinkResource): (WebCore::CachedResourceLoader::canRequest): (WebCore::CachedResourceLoader::incrementRequestCount): (WebCore::CachedResourceLoader::decrementRequestCount): * loader/cache/CachedResourceLoader.h: * loader/cache/CachedResourceRequest.cpp: (WebCore::cachedResourceTypeToTargetType): (WebCore::CachedResourceRequest::load): 2011-04-17 Dan Bernstein Reviewed by Joseph Pecoraro. REGRESSION (r83514): Failing fast/repaint/trailing-floats-root-line-box-overflow.html https://bugs.webkit.org/show_bug.cgi?id=58745 This is really a regression from r82611, but it went unnoticed due to a mistake in r73385, which was fixed in r83514. * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::layoutInlineChildren): Actually assign the bottom visual overflow to the variable so named, not the top layout overflow. 2011-04-17 Geoffrey Garen Strongly suggested, but not necessarily reviewed, by Sam Weinig and Maciej Stachowiak. Renamed DOMObject* => JSDOMWrapper*. * bindings/js/DOMWrapperWorld.cpp: (WebCore::isObservable): (WebCore::DOMObjectHandleOwner::finalize): * bindings/js/DOMWrapperWorld.h: * bindings/js/JSArrayBufferViewHelper.h: (WebCore::toJSArrayBufferView): * bindings/js/JSCSSRuleCustom.cpp: (WebCore::toJS): * bindings/js/JSCSSValueCustom.cpp: (WebCore::toJS): * bindings/js/JSDOMBinding.h: (WebCore::JSDOMWrapperWithGlobalPointer::globalObject): (WebCore::JSDOMWrapperWithGlobalPointer::JSDOMWrapperWithGlobalPointer): (WebCore::DOMConstructorObject::DOMConstructorObject): (WebCore::createDOMObjectWrapper): (WebCore::getDOMObjectWrapper): * bindings/js/JSDOMWrapper.cpp: (WebCore::JSDOMWrapper::~JSDOMWrapper): * bindings/js/JSDOMWrapper.h: (WebCore::JSDOMWrapper::JSDOMWrapper): * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::location): (WebCore::toJS): * bindings/js/JSEventCustom.cpp: (WebCore::toJS): * bindings/js/JSHTMLCollectionCustom.cpp: (WebCore::toJS): * bindings/js/JSImageDataCustom.cpp: (WebCore::toJS): * bindings/js/JSSVGPathSegCustom.cpp: (WebCore::toJS): * bindings/js/JSStyleSheetCustom.cpp: (WebCore::toJS): * bindings/js/ScriptWrappable.h: (WebCore::ScriptWrappable::wrapper): (WebCore::ScriptWrappable::setWrapper): * bindings/scripts/CodeGeneratorJS.pm: 2011-04-17 Patrick Gansterer Reviewed by Adam Barth. Rename PLATFORM(CA) to USE(CA) https://bugs.webkit.org/show_bug.cgi?id=58742 * config.h: * platform/graphics/ca/TransformationMatrixCA.cpp: * platform/graphics/cg/ImageBufferDataCG.h: * platform/graphics/transforms/TransformationMatrix.h: * platform/mac/WebCoreSystemInterface.h: * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::containsPaintedContent): * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::updateBacking): 2011-04-17 Young Han Lee Reviewed by Benjamin Poulain. [Texmap] [Qt] Improve readability by using gInVertexAttributeIndex instead of 0. https://bugs.webkit.org/show_bug.cgi?id=58739 gInVertexAttributeIndex is a constant variable to point the location of "InVertex" attribute of the vertex shaders. * platform/graphics/opengl/TextureMapperGL.cpp: (WebCore::TextureMapperGL::drawTexture): (WebCore::TextureMapperGL::paintToTarget): 2011-04-17 Kinuko Yasuda Not reviewed: Fix copyright (I had submitted the file with wrong copyright line). * storage/StorageInfo.idl: 2011-04-17 Patrick Gansterer Reviewed by Adam Barth. Rename PLATFORM(CG) to USE(CG) https://bugs.webkit.org/show_bug.cgi?id=58729 * config.h: * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::toDataURL): * html/HTMLCanvasElement.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setShadow): (WebCore::CanvasRenderingContext2D::drawTextInternal): * html/canvas/CanvasRenderingContext2D.h: * html/canvas/CanvasStyle.cpp: (WebCore::CanvasStyle::applyStrokeColor): (WebCore::CanvasStyle::applyFillColor): * loader/cache/CachedFont.cpp: * loader/cache/CachedImage.cpp: (WebCore::CachedImage::createImage): * platform/FloatConversion.h: * platform/MIMETypeRegistry.cpp: (WebCore::initializeSupportedImageMIMETypes): (WebCore::initializeSupportedImageMIMETypesForEncoding): * platform/graphics/BitmapImage.h: * platform/graphics/Color.h: * platform/graphics/DashArray.h: * platform/graphics/FloatPoint.h: * platform/graphics/FloatRect.h: * platform/graphics/FloatSize.h: * platform/graphics/FontPlatformData.h: (WebCore::FontPlatformData::FontPlatformData): (WebCore::FontPlatformData::hash): * platform/graphics/GlyphBuffer.h: (WebCore::GlyphBuffer::advanceAt): (WebCore::GlyphBuffer::add): (WebCore::GlyphBuffer::expandLastAdvance): * platform/graphics/Gradient.h: * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::setLegacyShadow): * platform/graphics/GraphicsContext.h: (WebCore::GraphicsContextState::GraphicsContextState): * platform/graphics/GraphicsContext3D.h: * platform/graphics/Image.cpp: * platform/graphics/Image.h: * platform/graphics/ImageBuffer.cpp: * platform/graphics/ImageBuffer.h: * platform/graphics/ImageBufferData.h: * platform/graphics/ImageSource.h: * platform/graphics/IntPoint.h: * platform/graphics/IntRect.h: * platform/graphics/IntSize.h: * platform/graphics/Path.h: * platform/graphics/Pattern.h: * platform/graphics/SimpleFontData.h: * platform/graphics/cg/ColorCG.cpp: * platform/graphics/cg/FloatPointCG.cpp: * platform/graphics/cg/FloatRectCG.cpp: * platform/graphics/cg/FloatSizeCG.cpp: * platform/graphics/cg/ImageCG.cpp: * platform/graphics/cg/ImageSourceCG.cpp: * platform/graphics/cg/IntPointCG.cpp: * platform/graphics/cg/IntRectCG.cpp: * platform/graphics/cg/IntSizeCG.cpp: * platform/graphics/cg/PDFDocumentImage.cpp: * platform/graphics/cg/PDFDocumentImage.h: * platform/graphics/cg/PathCG.cpp: * platform/graphics/cg/TransformationMatrixCG.cpp: * platform/graphics/chromium/ImageLayerChromium.h: * platform/graphics/chromium/LayerRendererChromium.cpp: * platform/graphics/chromium/LayerRendererChromium.h: * platform/graphics/chromium/PlatformCanvas.cpp: (WebCore::PlatformCanvas::resize): (WebCore::PlatformCanvas::AutoLocker::AutoLocker): (WebCore::PlatformCanvas::Painter::Painter): * platform/graphics/chromium/PlatformCanvas.h: * platform/graphics/chromium/PlatformImage.cpp: (WebCore::PlatformImage::updateFromImage): * platform/graphics/opentype/OpenTypeUtilities.cpp: * platform/graphics/transforms/AffineTransform.h: * platform/graphics/transforms/TransformationMatrix.h: * platform/graphics/win/DIBPixelData.h: * platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::platformInit): (WebCore::createGDIFont): (WebCore::FontCache::createFontPlatformData): * platform/graphics/win/FontPlatformDataWin.cpp: (WebCore::FontPlatformData::FontPlatformData): * platform/graphics/win/GraphicsContextWin.cpp: * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: * platform/graphics/win/SimpleFontDataWin.cpp: * platform/image-decoders/ImageDecoder.cpp: * platform/image-decoders/ImageDecoder.h: * rendering/RenderObject.h: * rendering/svg/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::postApplyResource): * rendering/svg/RenderSVGResourceGradient.cpp: (WebCore::RenderSVGResourceGradient::RenderSVGResourceGradient): (WebCore::RenderSVGResourceGradient::applyResource): * rendering/svg/RenderSVGResourceGradient.h: * rendering/svg/RenderSVGResourceMasker.cpp: (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage): * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::applyResource): 2011-04-16 Adam Barth Reviewed by Sam Weinig. about:blank documents in new tabs can XHR anywhere https://bugs.webkit.org/show_bug.cgi?id=58712 Empty security origins have supposed to be low-privilege, we should mark them as having a unique origin. * manual-tests/about-blank-xhr.html: Added. * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::SecurityOrigin): * page/SecurityOrigin.h: 2011-04-16 Dan Bernstein Reviewed by Simon Fraser. Crash when hiding a float Test: fast/block/float/overhanging-tall-block.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::addOverhangingFloats): Moved the call to childLogicalTop() out of the loop. Capped the logical bottom so that we get the correct maximum. * rendering/RenderBlock.h: Decleared appendFloatingObjectToLastLine(). * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::appendFloatingObjectToLastLine): Added. Ensures correct bookkeeping by extending the float if needed so that it touches the line. (WebCore::RenderBlock::layoutInlineChildren): Changed to call appendFloatingObjectToLastLine(). (WebCore::RenderBlock::checkFloatsInCleanLine): Capped the float height so the we mark the right range of lines as dirty. * rendering/RootInlineBox.h: (WebCore::RootInlineBox::appendFloat): Replaced the floats() accessor with this function, which allows the creation of the vector to be combined with appending the first float. 2011-04-16 Sam Weinig Reviewed by Simon Fraser. Pages in the PageCache don't have the correct visited link coloring after being restored https://bugs.webkit.org/show_bug.cgi?id=58721 * WebCore.exp.in: Add export of markPagesForVistedLinkStyleRecalc for use by WebKit2. * history/CachedPage.cpp: (WebCore::CachedPage::CachedPage): (WebCore::CachedPage::restore): (WebCore::CachedPage::clear): * history/CachedPage.h: (WebCore::CachedPage::markForVistedLinkStyleRecalc): Add bit, set by calling markForVistedLinkStyleRecalc, which forces a visited link style recalc when being restored. * history/PageCache.h: * history/PageCache.cpp: (WebCore::PageCache::markPagesForVistedLinkStyleRecalc): Mark all pages in the page cache as requiring visited link style recalc. * page/PageGroup.cpp: (WebCore::PageGroup::addVisitedLink): (WebCore::PageGroup::removeVisitedLinks): (WebCore::PageGroup::removeAllVisitedLinks): Set dirty bit when changing any visited link information. 2011-04-16 Leo Yang Reviewed by Nikolas Zimmermann. ASSERT failure when svg element changes href https://bugs.webkit.org/show_bug.cgi?id=58726 m_resourceId was not empty after the pending resource becomes available. This will trigger the assertion at line 509 of SVGUseElement.cpp when the element's href becomes empty or invalid. This patch makes m_resourceId be empty after the pending resource becomes available to avoid assertion failure. Test: svg/custom/use-crash-when-href-change.svg * svg/SVGUseElement.cpp: (WebCore::SVGUseElement::buildPendingResource): 2011-04-16 Patrick Gansterer Reviewed by Eric Seidel. Rename PLATFORM(CAIRO) to USE(CAIRO) https://bugs.webkit.org/show_bug.cgi?id=55192 * CMakeListsEfl.txt: * config.h: * platform/MIMETypeRegistry.cpp: (WebCore::initializeSupportedImageMIMETypesForEncoding): * platform/graphics/ContextShadow.h: * platform/graphics/DashArray.h: * platform/graphics/FloatRect.h: * platform/graphics/FontPlatformData.h: (WebCore::FontPlatformData::FontPlatformData): (WebCore::FontPlatformData::hash): (WebCore::FontPlatformData::isHashTableDeletedValue): * platform/graphics/GlyphBuffer.h: (WebCore::GlyphBuffer::glyphAt): (WebCore::GlyphBuffer::add): * platform/graphics/Gradient.cpp: * platform/graphics/Gradient.h: * platform/graphics/GraphicsContext.cpp: * platform/graphics/GraphicsContext.h: (WebCore::GraphicsContextState::GraphicsContextState): * platform/graphics/GraphicsContext3D.h: * platform/graphics/ImageBufferData.h: * platform/graphics/ImageSource.h: * platform/graphics/Path.h: * platform/graphics/Pattern.h: * platform/graphics/SimpleFontData.h: * platform/graphics/cairo/DrawErrorUnderline.h: * platform/graphics/cairo/GraphicsContextCairo.cpp: * platform/graphics/cairo/ImageCairo.cpp: * platform/graphics/gstreamer/ImageGStreamer.h: * platform/graphics/transforms/AffineTransform.h: * platform/graphics/transforms/TransformationMatrix.h: * platform/graphics/win/FontCacheWin.cpp: (WebCore::createGDIFont): (WebCore::FontCache::createFontPlatformData): * platform/graphics/win/FontPlatformDataWin.cpp: (WebCore::FontPlatformData::FontPlatformData): * platform/graphics/win/GraphicsContextWin.cpp: * plugins/win/PluginViewWin.cpp: (WebCore::PluginView::paintWindowedPluginIntoContext): * rendering/RenderObject.h: 2011-04-16 Patrick Gansterer Unreviewed WinCE build fix for r84033. * platform/win/LocalizedStringsWin.cpp: (WebCore::localizedString): 2011-04-16 Abhishek Arya Reviewed by Nikolas Zimmermann. Only allow inline child for SVG text since we cannot handle block childs. https://bugs.webkit.org/show_bug.cgi?id=58678 Test: svg/text/text-block-child-crash.xhtml * rendering/svg/RenderSVGText.cpp: (WebCore::RenderSVGText::isChildAllowed): * rendering/svg/RenderSVGText.h: 2011-04-15 Ilya Tikhonovsky Reviewed by Pavel Feldman. Web Inspector: The list of Database entries is empty if the page opens a database just before Web Inspector. https://bugs.webkit.org/show_bug.cgi?id=57833 * inspector/Inspector.json: * inspector/InspectorDatabaseAgent.cpp: (WebCore::InspectorDatabaseAgent::didOpenDatabase): (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent): (WebCore::InspectorDatabaseAgent::setFrontend): (WebCore::InspectorDatabaseAgent::clearFrontend): (WebCore::InspectorDatabaseAgent::enable): (WebCore::InspectorDatabaseAgent::disable): (WebCore::InspectorDatabaseAgent::getDatabaseTableNames): (WebCore::InspectorDatabaseAgent::executeSQL): * inspector/InspectorDatabaseAgent.h: * inspector/front-end/inspector.js: 2011-04-15 Adam Barth Reviewed by Eric Seidel. CSP media-src is missing https://bugs.webkit.org/show_bug.cgi?id=58642 Yay HTMLMediaElement for having the exact hook we need! Tests: http/tests/security/contentSecurityPolicy/media-src-allowed.html http/tests/security/contentSecurityPolicy/media-src-blocked.html * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::isSafeToLoadURL): - Although it's tempting to add this branch to the previous if-block, that results in the wrong error message being logged to the console (covered by the "blocked" test). * page/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowMediaFromSource): (WebCore::ContentSecurityPolicy::addDirective): * page/ContentSecurityPolicy.h: - These changes are routine. 2011-04-15 Adam Barth Reviewed by Eric Seidel. CSP should block string arguments to setTimeout and setInterval unless options eval-script https://bugs.webkit.org/show_bug.cgi?id=58610 It's somewhat sadness that the JSC and V8 code for setTimeout and setInterval are so different. I struggled for a while with how to handle the worker case, but I decided to punt on it for now. Tests: http/tests/security/contentSecurityPolicy/eval-scripts-setInterval-allowed.html http/tests/security/contentSecurityPolicy/eval-scripts-setInterval-blocked.html http/tests/security/contentSecurityPolicy/eval-scripts-setTimeout-allowed.html http/tests/security/contentSecurityPolicy/eval-scripts-setTimeout-blocked.html * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::setTimeout): (WebCore::JSDOMWindow::setInterval): * bindings/js/JSWorkerContextCustom.cpp: (WebCore::JSWorkerContext::setTimeout): (WebCore::JSWorkerContext::setInterval): * bindings/js/ScheduledAction.cpp: (WebCore::ScheduledAction::create): * bindings/js/ScheduledAction.h: * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::WindowSetTimeoutImpl): * page/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowEval): * page/ContentSecurityPolicy.h: 2011-04-15 Shishir Agrawal Reviewed by James Robinson. Add a flag to guard Page Visibility API changes. https://bugs.webkit.org/show_bug.cgi?id=58464 * Configurations/FeatureDefines.xcconfig: 2011-04-15 Fridrich Strba Reviewed by Martin Robinson. Make plugins compile during WebKit GTK Windows build. Ifdef properly relevant parts so that the PluginViewGtk compiles on Windows. https://bugs.webkit.org/show_bug.cgi?id=58580 * plugins/PluginView.cpp: (WebCore::PluginView::stop): * plugins/PluginView.h: * plugins/gtk/PluginViewGtk.cpp: (WebCore::PluginView::platformGetValue): (WebCore::PluginView::platformStart): 2011-04-15 MORITA Hajime Reviewed by Simon Fraser. Calls to WebCore::Document::mayCauseFlashOfUnstyledContent make frequently-run drawing methods slower https://bugs.webkit.org/show_bug.cgi?id=58512 Manually rolled out r72367 at which mayCauseFlashOfUnstyledContent() was introduced. This change keeps an small refactoring on FrameView::shouldUpdate(), which doesn't affect on the behavior. * dom/Document.cpp: * dom/Document.h: * page/FrameView.cpp: (WebCore::FrameView::invalidateRect): (WebCore::FrameView::shouldUpdate): * rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintContents): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintLayer): 2011-04-15 Chris Rogers Reviewed by Kenneth Russell. Reduce default kernel size of SincResampler to favor better speed over quality https://bugs.webkit.org/show_bug.cgi?id=58710 No new tests since audio API is not yet implemented. * platform/audio/SincResampler.h: 2011-04-15 Fridrich Strba Reviewed by Martin Robinson. Expand the ntohs, ntohl, htons and htonl defines for OS(WINDOWS) These have to be defined for Windows in general, since win32 API does not provide them. https://bugs.webkit.org/show_bug.cgi?id=58582 * platform/graphics/WOFFFileFormat.cpp: 2011-04-15 Vsevolod Vlasov Reviewed by Adam Barth. Show a console message when X-Frame-Options blocks a load https://bugs.webkit.org/show_bug.cgi?id=39087 Added console message when X-Frame-Options headers block resource loading * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::didReceiveResponse): 2011-04-15 Fridrich Strba Reviewed by Martin Robinson. Evaluate PLATFORM(GTK) before the all-encompassing OS(WINDOWS) test. This allows Windows build of WebKit GTK to chose the right path. https://bugs.webkit.org/show_bug.cgi?id=58576 * platform/FileSystem.h: 2011-04-08 Luiz Agostini Reviewed by Kenneth Rohde Christiansen. [Qt] QWebPage MIME type handling inconsistency with other web browsers https://bugs.webkit.org/show_bug.cgi?id=46968 Implementing mime type sniffing based on http://tools.ietf.org/html/draft-abarth-mime-sniff-06. * WebCore.pro: * platform/network/MIMESniffing.cpp: Added. (MagicNumbers::dataSizeNeededForImageSniffing): (MagicNumbers::maskedCompare): (MagicNumbers::checkSpaceOrBracket): (MagicNumbers::compare): (MagicNumbers::findMIMEType): (MagicNumbers::findSimpleMIMEType): (MagicNumbers::textOrBinaryTypeSniffingProcedure): (MagicNumbers::unknownTypeSniffingProcedure): (MagicNumbers::imageTypeSniffingProcedure): (MagicNumbers::checkText): (MagicNumbers::checkRDF): (MagicNumbers::skipTag): (MagicNumbers::feedTypeSniffingProcedure): (MIMESniffer::MIMESniffer): * platform/network/MIMESniffing.h: Added. (MIMESniffer::dataSize): (MIMESniffer::sniff): (MIMESniffer::isValid): * platform/network/NetworkingContext.h: * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyWrapper::QNetworkReplyWrapper): (WebCore::QNetworkReplyWrapper::release): (WebCore::QNetworkReplyWrapper::receiveMetaData): (WebCore::QNetworkReplyWrapper::receiveSniffedMIMEType): (WebCore::QNetworkReplyWrapper::emitMetaDataChanged): (WebCore::QNetworkReplyHandler::sendResponseIfNeeded): (WebCore::QNetworkReplyHandler::sendNetworkRequest): (WebCore::QNetworkReplyHandler::start): * platform/network/qt/QNetworkReplyHandler.h: (WebCore::QNetworkReplyWrapper::advertisedMIMEType): (WebCore::QNetworkReplyWrapper::mimeType): * platform/network/qt/QtMIMETypeSniffer.cpp: Added. (QtMIMETypeSniffer::QtMIMETypeSniffer): (QtMIMETypeSniffer::sniff): (QtMIMETypeSniffer::trySniffing): * platform/network/qt/QtMIMETypeSniffer.h: Added. (QtMIMETypeSniffer::mimeType): (QtMIMETypeSniffer::isFinished): 2011-04-15 Emil A Eklund Reviewed by Dimitri Glazkov. input field with focus makes appendChild operation ~42x slower https://bugs.webkit.org/show_bug.cgi?id=57059 Change ContainerNode::cloneChildNodes to only disable the deleteButtonController if the container itself (or any of its children) is being edited. Thus avoiding a reflow in cases where it's not. Test: perf/clone-with-focus.html * dom/ContainerNode.cpp: (WebCore::ContainerNode::cloneChildNodes): 2011-04-15 Kinuko Yasuda Reviewed by David Levin. Expose unified Quota API if QUOTA build flag is enabled https://bugs.webkit.org/show_bug.cgi?id=58648 Test: storage/storageinfo-query-usage.html * CMakeLists.txt: Added new file entries. * DerivedSources.cpp: Added new file entries. * DerivedSources.make: Added new file entries. * GNUmakefile.am: Added new file entries. * WebCore.gypi: Added new file entries. * WebCore.vcproj/WebCore.vcproj: Added new file entries. * WebCore.xcodeproj/project.pbxproj: Added new file entries. * page/DOMWindow.cpp: (WebCore::DOMWindow::webkitStorageInfo): Added. * page/DOMWindow.h: * page/DOMWindow.idl: * storage/StorageInfo.h: Added storage type enum. * storage/StorageInfo.idl: Added. * storage/StorageInfoErrorCallback.idl: Added. * storage/StorageInfoUsageCallback.idl: Added. 2011-04-15 Oliver Hunt GC allocate Structure https://bugs.webkit.org/show_bug.cgi?id=58483 Rolling r83894 r83827 r83810 r83809 r83808 back in with a workaround for the gcc bug seen by the gtk bots * WebCore.exp.in: * bindings/js/JSAudioConstructor.h: (WebCore::JSAudioConstructor::createStructure): * bindings/js/JSDOMBinding.cpp: (WebCore::cacheDOMStructure): * bindings/js/JSDOMBinding.h: (WebCore::DOMObjectWithGlobalPointer::createStructure): (WebCore::DOMObjectWithGlobalPointer::DOMObjectWithGlobalPointer): (WebCore::DOMConstructorObject::createStructure): (WebCore::DOMConstructorObject::DOMConstructorObject): (WebCore::DOMConstructorWithDocument::DOMConstructorWithDocument): * bindings/js/JSDOMGlobalObject.cpp: (WebCore::JSDOMGlobalObject::JSDOMGlobalObject): (WebCore::JSDOMGlobalObject::markChildren): * bindings/js/JSDOMGlobalObject.h: (WebCore::JSDOMGlobalObject::createStructure): * bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::JSDOMWindowBase): * bindings/js/JSDOMWindowBase.h: (WebCore::JSDOMWindowBase::createStructure): * bindings/js/JSDOMWindowShell.cpp: (WebCore::JSDOMWindowShell::JSDOMWindowShell): (WebCore::JSDOMWindowShell::setWindow): * bindings/js/JSDOMWindowShell.h: (WebCore::JSDOMWindowShell::createStructure): * bindings/js/JSDOMWrapper.h: (WebCore::DOMObject::DOMObject): * bindings/js/JSEventListener.cpp: (WebCore::JSEventListener::JSEventListener): * bindings/js/JSImageConstructor.h: (WebCore::JSImageConstructor::createStructure): * bindings/js/JSImageDataCustom.cpp: (WebCore::toJS): * bindings/js/JSOptionConstructor.h: (WebCore::JSOptionConstructor::createStructure): * bindings/js/JSWorkerContextBase.cpp: (WebCore::JSWorkerContextBase::JSWorkerContextBase): * bindings/js/JSWorkerContextBase.h: (WebCore::JSWorkerContextBase::createStructure): * bindings/js/ScriptCachedFrameData.h: * bindings/js/SerializedScriptValue.h: * bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::~WorkerScriptController): (WebCore::WorkerScriptController::initScript): * bindings/scripts/CodeGeneratorJS.pm: * bridge/c/CRuntimeObject.h: (JSC::Bindings::CRuntimeObject::createStructure): * bridge/c/c_instance.cpp: (JSC::Bindings::CRuntimeMethod::createStructure): * bridge/jni/jsc/JavaInstanceJSC.cpp: (JavaRuntimeMethod::createStructure): * bridge/jni/jsc/JavaRuntimeObject.h: (JSC::Bindings::JavaRuntimeObject::createStructure): * bridge/objc/ObjCRuntimeObject.h: (JSC::Bindings::ObjCRuntimeObject::createStructure): * bridge/objc/objc_instance.mm: (ObjCRuntimeMethod::createStructure): * bridge/objc/objc_runtime.h: (JSC::Bindings::ObjcFallbackObjectImp::createStructure): * bridge/qt/qt_instance.cpp: (JSC::Bindings::QtRuntimeObject::createStructure): * bridge/qt/qt_pixmapruntime.cpp: (JSC::Bindings::QtPixmapRuntimeObject::createStructure): * bridge/qt/qt_runtime.h: (JSC::Bindings::QtRuntimeMethod::createStructure): * bridge/runtime_array.cpp: (JSC::RuntimeArray::RuntimeArray): * bridge/runtime_array.h: (JSC::RuntimeArray::createStructure): * bridge/runtime_method.cpp: (JSC::RuntimeMethod::RuntimeMethod): * bridge/runtime_method.h: (JSC::RuntimeMethod::createStructure): * bridge/runtime_object.cpp: (JSC::Bindings::RuntimeObject::RuntimeObject): * bridge/runtime_object.h: (JSC::Bindings::RuntimeObject::createStructure): * history/HistoryItem.h: 2011-04-15 Jessie Berlin Reviewed by Brian Weinstein. Hang underneath ApplicationCacheStorage::writeDataToUniqueFileInDirectory when loading http://www.webkit.org/demos/calendar. https://bugs.webkit.org/show_bug.cgi?id=58698 * platform/win/FileSystemWin.cpp: (WebCore::openFile): Add breaks to the case statement. (WebCore::directoryName): Remove any trailing slash in directoryName. After closer inspection of all callers, it appears the that callers do not need the trailing slash, and those that use the length do so only to change the direction of the slashes throughout the length of the path. 2011-04-15 Roland Steiner Reviewed by Dimitri Glazkov. Bug 52963 - Enable O(1) access to root from any node in shadow DOM subtree https://bugs.webkit.org/show_bug.cgi?id=52963 .) Change base class of ShadowRoot from DocumentFragment to TreeScope. .) Re-enable tree scope handling in Node (had ASSERT_NOT_REACHED, etc.). .) Merged setTreeScope() with setTreeScopeRecursively() .) Call setTreeScopeRecursively in DOM manipulation functions where applicable. No new tests. (refactoring) * dom/ContainerNode.cpp: (WebCore::ContainerNode::takeAllChildrenFrom): (WebCore::ContainerNode::removeBetween): (WebCore::ContainerNode::removeChildren): (WebCore::ContainerNode::parserAddChild): * dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::~Document): (WebCore::Document::setDocType): * dom/Element.h: * dom/Node.cpp: (WebCore::Node::treeScope): (WebCore::Node::setTreeScopeRecursively): * dom/Node.h: (WebCore::Node::document): * dom/ShadowRoot.cpp: (WebCore::ShadowRoot::ShadowRoot): (WebCore::ShadowRoot::~ShadowRoot): (WebCore::ShadowRoot::nodeType): (WebCore::ShadowRoot::cloneNode): (WebCore::ShadowRoot::childTypeAllowed): * dom/ShadowRoot.h: (WebCore::toShadowRoot): * dom/TreeScope.cpp: (WebCore::TreeScope::TreeScope): (WebCore::TreeScope::setParentTreeScope): * dom/TreeScope.h: * rendering/RenderSlider.cpp: 2011-04-15 Geoffrey Garen Reviewed by Oliver Hunt. DOM object handles are never removed from cache https://bugs.webkit.org/show_bug.cgi?id=58707 We were trying to remove hash table items by value instead of by key. * bindings/js/DOMWrapperWorld.cpp: (WebCore::JSNodeHandleOwner::finalize): Changed to work more like DOMObjectHandleOwner::finalize because I'm going to merge them. (WebCore::DOMObjectHandleOwner::finalize): Remove hash table items by key, not value. (Oops!) Use a helper function to make sure we get this right. * bindings/js/JSDOMBinding.cpp: (WebCore::cacheDOMObjectWrapper): Store the hash table key as our weak handle context, so we can use it at destruction time. * bindings/js/JSDOMBinding.h: Removed unnecessary include. * bindings/js/JSNodeCustom.h: (WebCore::cacheDOMNodeWrapper): Store the hash table key as our weak handle context, so we can use it at destruction time. * bindings/js/ScriptWrappable.h: (WebCore::ScriptWrappable::setWrapper): Forward context parameter, to support the above. 2011-04-15 Kenneth Russell Unreviewed. Chromium Linux Release build fix due to unused variables. * platform/audio/mkl/FFTFrameMKL.cpp: (WebCore::FFTFrame::doFFT): (WebCore::FFTFrame::doInverseFFT): (WebCore::FFTFrame::cleanup): 2011-04-15 Brent Fulgham Unreviewed build change after r83945. New 'PlatformPathCairo.cpp' was not added to the WinCairo build. * WebCore.vcproj/WebCore.vcproj: Add missing file to WinCairo build. Exclude for standard Apple build. 2011-04-15 Anders Carlsson Reviewed by Dan Bernstein. Fade the find page overlay https://bugs.webkit.org/show_bug.cgi?id=58697 Add a symbol that WebKit2 needs. * WebCore.exp.in: 2011-04-15 MORITA Hajime Reviewed by Dimitri Glazkov. RenderDetailsMarker should belong to shadow element. https://bugs.webkit.org/show_bug.cgi?id=58591 - Introduced DetailsMarkerControl element, which is a shadow element of , creates RenderDetailsMarker. - Removed custom layout code from RenderDetails, RenderDetailsMarker, which is now done by usual CSS layout. Note that marker size is given via style for -webkit-details-marker pseudo class. - Converted default summary implementation from pure-renderer style to shadow of HTMLDetailsElement. Now RenderDetails knows nothing about default summary. - Moved event handling code from HTMLDetailsElement to HTMLSummaryElement because now the marker is always child of , and the clickable area is now itself. - Note that the rendering result is changed due to the conversion from custom layout code to usual CSS styling. * Android.mk: * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * css/html.css: (summary::-webkit-details-marker): * dom/Element.cpp: (WebCore::Element::attach): * dom/Node.cpp: (WebCore::shouldCreateRendererFor): * dom/Node.h: (WebCore::Node::canHaveLightChildRendererWithShadow): * html/HTMLDetailsElement.cpp: (WebCore::HTMLDetailsElement::findSummaryFor): (WebCore::HTMLDetailsElement::findMainSummary): (WebCore::HTMLDetailsElement::refreshMainSummary): (WebCore::HTMLDetailsElement::createShadowSubtree): (WebCore::HTMLDetailsElement::childrenChanged): (WebCore::HTMLDetailsElement::finishParsingChildren): (WebCore::HTMLDetailsElement::toggleOpen): * html/HTMLDetailsElement.h: (WebCore::HTMLDetailsElement::canHaveLightChildRendererWithShadow): * html/HTMLSummaryElement.cpp: (WebCore::HTMLSummaryElement::create): (WebCore::HTMLSummaryElement::createShadowSubtree): (WebCore::HTMLSummaryElement::detailsElement): (WebCore::HTMLSummaryElement::isMainSummary): (WebCore::HTMLSummaryElement::defaultEventHandler): * html/HTMLSummaryElement.h: (WebCore::HTMLSummaryElement::canHaveLightChildRendererWithShadow): * html/shadow/DetailsMarkerControl.cpp: Added. (WebCore::DetailsMarkerControl::DetailsMarkerControl): (WebCore::DetailsMarkerControl::createRenderer): (WebCore::DetailsMarkerControl::rendererIsNeeded): (WebCore::DetailsMarkerControl::shadowPseudoId): (WebCore::DetailsMarkerControl::summaryElement): * html/shadow/DetailsMarkerControl.h: Added. (WebCore::DetailsMarkerControl::create): * rendering/RenderDetails.cpp: (WebCore::RenderDetails::RenderDetails): (WebCore::RenderDetails::styleDidChange): (WebCore::RenderDetails::moveSummaryToContents): (WebCore::RenderDetails::checkMainSummary): (WebCore::RenderDetails::layout): * rendering/RenderDetails.h: * rendering/RenderDetailsMarker.cpp: (WebCore::RenderDetailsMarker::RenderDetailsMarker): (WebCore::RenderDetailsMarker::isOpen): (WebCore::RenderDetailsMarker::getPath): (WebCore::RenderDetailsMarker::paint): (WebCore::RenderDetailsMarker::details): * rendering/RenderDetailsMarker.h: 2011-04-15 Sam Weinig Reviewed by Adam Roben. Implement localize strings for windows WebKit2 https://bugs.webkit.org/show_bug.cgi?id=58688 * platform/win/LocalizedStringsWin.cpp: (WebCore::createWebKitBundle): (WebCore::webKitBundle): (WebCore::localizedString): Add implementation of localizedString for Windows. 2011-04-15 Geoffrey Garen Reviewed by Oliver Hunt. Some mechanical DOM wrapper cleanup https://bugs.webkit.org/show_bug.cgi?id=58689 * WebCore.exp.in: Export! * bindings/js/DOMWrapperWorld.cpp: (WebCore::isReachableFromDOM): Inverted the inDocument test to make the relationship of the special cases to the normal case clearer. * bindings/js/JSArrayBufferViewHelper.h: (WebCore::toJSArrayBufferView): * bindings/js/JSCSSRuleCustom.cpp: (WebCore::toJS): * bindings/js/JSCSSValueCustom.cpp: (WebCore::toJS): * bindings/js/JSDOMBinding.cpp: (WebCore::getCachedDOMObjectWrapper): (WebCore::cacheDOMObjectWrapper): * bindings/js/JSDOMBinding.h: (WebCore::createDOMObjectWrapper): (WebCore::getDOMObjectWrapper): (WebCore::createDOMNodeWrapper): (WebCore::getDOMNodeWrapper): Changed DOM wrapper functions to operate in terms of DOMWrapperWorlds instead of ExecStates. This is clearer, and ever-so-slightly faster. Removed hasCachedXXX functions, now that they're unused. * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::history): (WebCore::JSDOMWindow::location): * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::location): (WebCore::toJS): * bindings/js/JSElementCustom.cpp: (WebCore::toJSNewlyCreated): * bindings/js/JSEventCustom.cpp: (WebCore::toJS): * bindings/js/JSHTMLCollectionCustom.cpp: (WebCore::toJS): * bindings/js/JSImageDataCustom.cpp: (WebCore::toJS): * bindings/js/JSNodeCustom.cpp: (WebCore::createWrapperInline): * bindings/js/JSNodeCustom.h: (WebCore::getCachedDOMNodeWrapper): (WebCore::cacheDOMNodeWrapper): (WebCore::toJS): * bindings/js/JSSVGPathSegCustom.cpp: (WebCore::toJS): * bindings/js/JSStyleSheetCustom.cpp: (WebCore::toJS): Updated for changes above. * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::dropProtection): Removed use of hasCachedDOMObjectWrapper because XHR is almost always created and used by JavaScript, so it's simpler to just always report extra cost. 2011-04-15 Andreas Kling Rolling out accidental part of r84010. * platform/qt/RenderThemeQt.cpp: (WebCore::RenderThemeQt::computeSizeBasedOnStyle): (WebCore::RenderThemeQt::setButtonPadding): 2011-04-15 Oliver Hunt Forgot windows build fix. * bindings/js/JSNodeFilterCondition.cpp: (WebCore::JSNodeFilterCondition::WeakOwner::isReachableFromOpaqueRoots): 2011-04-15 Joseph Pecoraro Reviewed by Yury Semikhatsky. Frontend Part of Web Inspector: Remote Web Inspector - Cross Platform InspectorServer https://bugs.webkit.org/show_bug.cgi?id=51364 The front end should not use a transparent background when loaded as a web page (remote debugging) but should when loaded regularly in a custom window. This adds a "remote" style class onto the document body when the page is loaded remotely. * inspector/front-end/inspector.css: (body.detached.platform-mac-snowleopard:not(.remote) #toolbar): respect the "remote" class. * inspector/front-end/inspector.js: add a "remote" class on the body when loaded remotely. 2011-04-15 Joseph Pecoraro Reviewed by David Kilzer. JSLock ASSERT seen often when using the inspector for long periods of time. We should take the JSLock whenever we might allocate memory in the JavaScript Heap. JSC InjectedScriptHost::nodeAsScriptValue should take JSLock before possible JavaScript Allocations https://bugs.webkit.org/show_bug.cgi?id=58674 * bindings/js/JSInjectedScriptHostCustom.cpp: (WebCore::InjectedScriptHost::nodeAsScriptValue): take the JSLock. 2011-04-14 Oliver Hunt Reviewed by Geoffrey Garen. Make JSNodeFilterCondition handle its lifetime correctly https://bugs.webkit.org/show_bug.cgi?id=58622 Switch over to a WeakHandle and external roots to keep the condition value live. * bindings/js/JSNodeFilterCondition.cpp: (WebCore::JSNodeFilterCondition::JSNodeFilterCondition): (WebCore::JSNodeFilterCondition::markAggregate): (WebCore::JSNodeFilterCondition::acceptNode): (WebCore::JSNodeFilterCondition::WeakOwner::isReachableFromOpaqueRoots): * bindings/js/JSNodeFilterCondition.h: (WebCore::JSNodeFilterCondition::create): * bindings/js/JSNodeFilterCustom.cpp: (WebCore::toNodeFilter): * bindings/scripts/CodeGeneratorJS.pm: 2011-04-13 Luiz Agostini Reviewed by Andreas Kling. [Qt] QNetworkReplyHandler refactoring: some adjustments https://bugs.webkit.org/show_bug.cgi?id=57092 - Removing flag m_redirected from QNetworkReplyHandler and using m_redirectionTargetUrl.isValid() instead. - Moving flag m_responseContainsData from QNetworkReplyHandler to the reply wrapper and removing the connection of signal metaDataChanged for m_responseContainsData to be consistent. - Using an OwnPtr to keep the reference to the QNetworkReplyWrapper. * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyWrapper::QNetworkReplyWrapper): (WebCore::QNetworkReplyWrapper::receiveMetaData): (WebCore::QNetworkReplyWrapper::didReceiveReadyRead): (WebCore::QNetworkReplyHandler::QNetworkReplyHandler): (WebCore::QNetworkReplyHandler::release): (WebCore::shouldIgnoreHttpError): (WebCore::QNetworkReplyHandler::finish): (WebCore::QNetworkReplyHandler::sendResponseIfNeeded): (WebCore::QNetworkReplyHandler::redirect): (WebCore::QNetworkReplyHandler::forwardData): * platform/network/qt/QNetworkReplyHandler.h: (WebCore::QNetworkReplyWrapper::responseContainsData): (WebCore::QNetworkReplyWrapper::redirected): 2011-04-15 Alexey Proskuryakov Chromium build fix. * platform/SecureTextInput.h: CARBON_SECURE_INPUT_MODE no longer exists. 2011-04-15 Mike Reed Reviewed by Darin Fisher. hide unused static function when SKIA_GPU is enabled https://bugs.webkit.org/show_bug.cgi?id=58670 No new tests. Just fixes a warning (treated as an error) when SKIA_GPU is enabled * platform/graphics/skia/ImageSkia.cpp: 2011-04-15 Simon Fraser Reviewed by Beth Dakin. Some borders with border-radius do not have rounded inner edges https://bugs.webkit.org/show_bug.cgi?id=58457 Improve the logic used to compute the inner radii on curved borders, to maintain borders of even thickness around the curve. Tests: fast/borders/mixed-border-styles-radius.html fast/borders/mixed-border-styles.html * rendering/RenderBoxModelObject.h: * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::computeBorderOuterRect): (WebCore::RenderBoxModelObject::computeBorderInnerRect): Two new utility functions to share some code that was in both paintBorder() and paintBoxShaadow(). getRoundedInnerBorderWithBorderWidths() now takes the outer border box as well as the inner box. (WebCore::RenderBoxModelObject::paintBorder): Call new methods. (WebCore::RenderBoxModelObject::paintBoxShadow): Ditto. * rendering/RenderObject.cpp: (WebCore::RenderObject::drawBoxSideFromPath): getRoundedInnerBorderWithBorderWidths() now takes the outer border box as well as the inner box. * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::getRoundedInnerBorderWithBorderWidths): * rendering/style/RenderStyle.h: Compute the inner radii by starting with teh radii used for the outer box, and then shrinking them down based on the border thickness. 2011-04-14 Alexey Proskuryakov Reviewed by Dan Bernstein. WebKit2: Password field input does not switch to ASCII-compatible source https://bugs.webkit.org/show_bug.cgi?id=58583 * platform/SecureTextInput.cpp: (WebCore::enableSecureTextInput): (WebCore::disableSecureTextInput): This is now only used by Chromium. There is no need to change TSMDocument properties in renderer process (and really, all secure text input logic in WebCore should be eliminated). 2011-04-13 Xiaomei Ji Reviewed by Ryosuke Niwa. Continue (3rd) experiment with moving caret by word in visual order. https://bugs.webkit.org/show_bug.cgi?id=58294 This patch along with r82588 and r83483 implements moving caret by word in visual order. The overall algorithm is: 1. First get the InlineBox and offset of the pass-in VisiblePosition. 2. Based on the position (left boundary, middle, right boundary) of the offset and the direction of the movement, look for visually adjacent word breaks. 2.1 If the offset is the minimum offset of the box, return the rightmost word boundary in previous boxes if moving left. return the leftmost word boundary in box and next boxes if moving right. 2.2 Similar for the case when offset is at the maximum offset of the box. 2.3 When offset is inside the box (not at boundaries), first find the previousWordPosition or nextWordPosition based on the directionality of the box. If this word break position is also inside the same box, return it. Otherwise (the nextWordPosition or previousWordPosition is not in the same box or is at the box boundary), collect all the word breaks in the box and search for the one closest to the input "offset" based on box directionality, block directionality, and movement direction. Continue search in adjacent boxes if needed. Notes: 1. Word boundaries are collected one box at a time. Only when a boundary that is closest to the input position (in the moving direction) is not available in current box, word boundaries in adjacent box will be collected. So, there is no need to save InlineBox in word boundaries. Instead, the word boundaries are saved as a pair (VisiblePosition, offset) to avoid recomputing VisiblePosition. 2. We only collect boundaries of the right kind (i.e. left boundary of a word in LTR block and right boundary of a word in RTL block). And word boundaries are collected using previousWordPosition() and nextWordPosition(). So when box directionality is the same as block directionality, word boundaries are collected from right to left visually in a LTR box, and word boundaries are collected from left to right visually in a RTL box. It is the other way around when box directionality is different from block directionality. 3. To find the right kinds of word boundaries, we must move back and forth between words in some situations. For example, if we're moving to the right in a LTR box in LTR block, we cannot simply return nextWordPosition() because it would return the right boundary of a word. Instead, we return nextWordPosition()'s nextWordPosition()'s previousWordPosition(). 4. When collecting word breaks inside a box, it first computes a start position, then collect the right kind of word breaks until it reaches the end of (or beyond) the box. In the meanwhile, it might need special handling on the rightmost or leftmost position based on the directionality of the box and block. These computations do not consider the box's bidi level. * editing/visible_units.cpp: (WebCore::nextWordBreakInBoxInsideBlockWithDifferentDirectionality): (WebCore::collectWordBreaksInBox): (WebCore::previousWordBoundaryInBox): (WebCore::nextWordBoundaryInBox): (WebCore::visuallyLastWordBoundaryInBox): (WebCore::leftWordBoundary): (WebCore::rightWordBoundary): (WebCore::leftWordPosition): (WebCore::rightWordPosition): 2011-04-14 Zhenyao Mo Reviewed by Kenneth Russell. Use HTMLImageElement in Canvas 2D / WebGL before response is ready causes crash https://bugs.webkit.org/show_bug.cgi?id=58501 * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::texImage2D): Call validateHTMLImageElement(). (WebCore::WebGLRenderingContext::texSubImage2D): Ditto. (WebCore::WebGLRenderingContext::validateHTMLImageElement): Make sure image is ready. * html/canvas/WebGLRenderingContext.h: 2011-04-07 MORITA Hajime Reviewed by Ryosuke Niwa. DocumentMaker::AllMarkers should not be a part of DocumentMarker::MarkerType https://bugs.webkit.org/show_bug.cgi?id=58112 - Converted DocumentMarker::MarkerTypes from unsigned int to a class. - Converted DocumentMarker::AllMarkers from an enum entry to a subclass of MarkerTypes. - Changed type of some MarkerType argument on DocumentMarkerController API to MarkerTypes which should allow a combination of MarkerType constansts. - Removed some MarkerType arguments on DocumentMarkerController API which only received AllMarkers. No new tests, no behavior change. * WebCore.exp.in: * dom/DocumentMarker.h: (WebCore::DocumentMarker::MarkerTypes::MarkerTypes): (WebCore::DocumentMarker::MarkerTypes::contains): (WebCore::DocumentMarker::MarkerTypes::intersects): (WebCore::DocumentMarker::MarkerTypes::operator==): (WebCore::DocumentMarker::MarkerTypes::add): (WebCore::DocumentMarker::MarkerTypes::remove): (WebCore::DocumentMarker::AllMarkers::AllMarkers): * dom/DocumentMarkerController.cpp: (WebCore::DocumentMarkerController::possiblyHasMarkers): (WebCore::DocumentMarkerController::addMarker): (WebCore::DocumentMarkerController::copyMarkers): (WebCore::DocumentMarkerController::removeMarkers): (WebCore::DocumentMarkerController::markerContainingPoint): (WebCore::DocumentMarkerController::markersInRange): (WebCore::DocumentMarkerController::renderedRectsForMarkers): (WebCore::DocumentMarkerController::removeMarkersFromMarkerMapVectorPair): (WebCore::DocumentMarkerController::repaintMarkers): (WebCore::DocumentMarkerController::shiftMarkers): (WebCore::DocumentMarkerController::setMarkersActive): (WebCore::DocumentMarkerController::hasMarkers): (WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange): * dom/DocumentMarkerController.h: 2011-04-14 Geoffrey Garen Reviewed by Oliver Hunt. Complicated hash table is complicated https://bugs.webkit.org/show_bug.cgi?id=58631 Now that we use the opaque roots system to track node wrapper lifetime, we can remove a lot of complicated hash-tablery that used to do the same. Now normal world node wrappers are just set as direct properties of ScriptWrappable, while isolated world node wrappers and other DOM object wrappers are stored in a shared, per-world hash table. In addition to reducing complexity, this makes DOM wrapper allocation 1.6X faster (tested with scratch-gc-dom3.html), and it reduces the memory footprint of normal world wrappers by ~2/3, and isolated world wrappers by ~1/3. * WebCore.exp.in: Paying the patch tithe. * bindings/js/DOMWrapperWorld.cpp: (WebCore::DOMWrapperWorld::~DOMWrapperWorld): (WebCore::DOMWrapperWorld::clearWrappers): No more per-document hash tables. (WebCore::JSNodeHandleOwner::finalize): Changed to call a helper function, so the code to destroy a wrapper can live next to the code to create one. * bindings/js/DOMWrapperWorld.h: No more per-document hash tables. * bindings/js/JSDOMBinding.cpp: (WebCore::uncacheDOMObjectWrapper): * bindings/js/JSDOMBinding.h: (WebCore::createDOMNodeWrapper): (WebCore::getDOMNodeWrapper): No more per-document hash tables. Added uncacheDOMObjectWrapper to be symmetrical with cacheDOMObjectWrapper. * bindings/js/JSDocumentCustom.cpp: (WebCore::toJS): * bindings/js/JSElementCustom.cpp: (WebCore::toJSNewlyCreated): * bindings/js/JSNodeCustom.cpp: (WebCore::createWrapperInline): Ditto. * bindings/js/JSNodeCustom.h: (WebCore::getCachedDOMNodeWrapper): (WebCore::cacheDOMNodeWrapper): (WebCore::uncacheDOMNodeWrapper): (WebCore::toJS): Implemented the scheme described above. * bindings/js/ScriptWrappable.h: (WebCore::ScriptWrappable::wrapper): (WebCore::ScriptWrappable::setWrapper): (WebCore::ScriptWrappable::clearWrapper): ScriptWrappable needs a handle owner now, since we don't have an extra handle living in a hash table to maintain ownership for us. * dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::~Document): * dom/Document.h: * dom/Node.cpp: (WebCore::Node::setDocument): No more per-document hash tables. * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::createImageBuffer): Removed call to hasCachedDOMNodeWrapperUnchecked because that was the old way of doing things, and I was in the mood for getting rid of the old way. It's debatable whether the check was ever a good idea. Even when a doesn't have a direct JS wrapper, other JS references can still keep the alive. So, it's probably best always to report extra cost. 2011-04-15 Vsevolod Vlasov Reviewed by Pavel Feldman. Web Inspector: Rename rawRequestHeadersText and RawResponseHeadersText to requestHeadersText and responseHeadersText https://bugs.webkit.org/show_bug.cgi?id=58650 * inspector/Inspector.json: * inspector/InspectorResourceAgent.cpp: (WebCore::buildObjectForResourceResponse): * inspector/front-end/NetworkManager.js: (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse): * inspector/front-end/Resource.js: (WebInspector.Resource.prototype.get requestHeadersText): (WebInspector.Resource.prototype.set requestHeadersText): (WebInspector.Resource.prototype.get requestHeadersSize): (WebInspector.Resource.prototype.get responseHeadersText): (WebInspector.Resource.prototype.set responseHeadersText): (WebInspector.Resource.prototype.get responseHeadersSize): (WebInspector.Resource.prototype._headersSize): * inspector/front-end/ResourceHeadersView.js: (WebInspector.ResourceHeadersView): (WebInspector.ResourceHeadersView.prototype._refreshRequestHeaders): (WebInspector.ResourceHeadersView.prototype._refreshResponseHeaders): (WebInspector.ResourceHeadersView.prototype._refreshHeadersTitle): (WebInspector.ResourceHeadersView.prototype._refreshHeadersText): (WebInspector.ResourceHeadersView.prototype._toggleRequestHeadersText): (WebInspector.ResourceHeadersView.prototype._toggleResponseHeadersText): (WebInspector.ResourceHeadersView.prototype._createHeadersToggleButton): * inspector/front-end/networkPanel.css: (.resource-headers-view .outline-disclosure li.headers-text): * platform/network/ResourceLoadInfo.h: 2011-04-15 Luke Macpherson Reviewed by Dimitri Glazkov. Implement css overflow properties in CSSStyleApplyProperty https://bugs.webkit.org/show_bug.cgi?id=58633 No new tests required as no functionality changes. * css/CSSStyleApplyProperty.cpp: (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): Add initializers for CSSPropertyOverflowX, CSSPropertyOverflowY and CSSPropertyOverflow. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Delete existing implementations. 2011-04-15 Sam Weinig Reviewed by Maciej Stachowiak. Make mac WebKit1 use the default localization strategy https://bugs.webkit.org/show_bug.cgi?id=58628 * English.lproj/Localizable.strings: Update by running update-webkit-localizable-strings. * platform/DefaultLocalizationStrategy.cpp: (WebCore::DefaultLocalizationStrategy::contextMenuItemTagLookUpInDictionary): (WebCore::DefaultLocalizationStrategy::keygenKeychainItemName): (WebCore::DefaultLocalizationStrategy::imageTitle): Match the WebKit1 versions of these functions by special casing CF platforms. 2011-04-15 Vsevolod Vlasov Reviewed by Pavel Feldman. Web Inspector: No console message and headers in inspector when X-Frame-Options header blocks a load https://bugs.webkit.org/show_bug.cgi?id=58136 Passed response info to inspector when X-Frame-Options header blocks resource loading. Test: http/tests/inspector/network/x-frame-options-deny.html * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::continueAfterXFrameOptionsDeniedImpl): * inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::continueAfterXFrameOptionsDenied): * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::didReceiveResponse): 2011-04-15 Andrey Adaikin Reviewed by Pavel Feldman. Web Inspector: TextViewer and TextEditorModel must support both \n and \r\n as line separators https://bugs.webkit.org/show_bug.cgi?id=58449 Test: inspector/editor/text-editor-model.html * inspector/front-end/TextEditorModel.js: (WebInspector.TextEditorModel): (WebInspector.TextEditorModel.prototype.get text): (WebInspector.TextEditorModel.prototype.setText): (WebInspector.TextEditorModel.prototype._innerSetText): (WebInspector.TextEditorModel.prototype.copyRange): 2011-04-15 Sergey Vorobyev Reviewed by Yury Semikhatsky. Web Inspector: Network events don't preserves, when inspector frontend closed and open again https://bugs.webkit.org/show_bug.cgi?id=58064 Added InspectorFrontendProxy and EventsCollector. They allow captured messages from InspectorResourceAgent to frontend (or mockFrontend if frontend disabled) and push collected data when frontend reconnect. This functionality is disabled by default. * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * inspector/EventsCollector.cpp: Added. (WebCore::EventsCollector::EventsCollector): (WebCore::EventsCollector::addEvent): (WebCore::EventsCollector::sendCollectedEvents): * inspector/EventsCollector.h: Added. (WebCore::EventsCollector::~EventsCollector): * inspector/Inspector.json: * inspector/InspectorFrontendProxy.cpp: Added. (WebCore::InspectorFrontendProxy::InspectorFrontendProxy): (WebCore::InspectorFrontendProxy::setInspectorFrontendChannel): (WebCore::InspectorFrontendProxy::setEventsCollector): (WebCore::InspectorFrontendProxy::sendMessageToFrontend): * inspector/InspectorFrontendProxy.h: Added. (WebCore::InspectorFrontendProxy::~InspectorFrontendProxy): * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl): (WebCore::InspectorInstrumentation::loadEventFiredImpl): * inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::willSendRequest): (WebCore::InspectorInstrumentation::willReceiveResourceResponse): (WebCore::InspectorInstrumentation::didReceiveContentLength): (WebCore::InspectorInstrumentation::didFinishLoading): (WebCore::InspectorInstrumentation::domContentLoadedEventFired): (WebCore::InspectorInstrumentation::loadEventFired): (WebCore::InspectorInstrumentation::frameDetachedFromParent): (WebCore::InspectorInstrumentation::didCreateWebSocket): (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest): (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse): (WebCore::InspectorInstrumentation::didCloseWebSocket): * inspector/InspectorResourceAgent.cpp: (WebCore::InspectorResourceAgent::setFrontend): (WebCore::InspectorResourceAgent::resourceContent): (WebCore::InspectorResourceAgent::~InspectorResourceAgent): (WebCore::InspectorResourceAgent::didReceiveResponse): (WebCore::InspectorResourceAgent::domContentEventFired): (WebCore::InspectorResourceAgent::loadEventFired): (WebCore::InspectorResourceAgent::enabledBackgoundEventsCoollection): (WebCore::InspectorResourceAgent::enable): (WebCore::InspectorResourceAgent::InspectorResourceAgent): * inspector/InspectorResourceAgent.h: * inspector/front-end/NetworkManager.js: (WebInspector.NetworkDispatcher.prototype.domContentEventFired): (WebInspector.NetworkDispatcher.prototype.loadEventFired): * inspector/front-end/inspector.js: (WebInspector.domContentEventFired): (WebInspector.loadEventFired): 2011-04-15 Alexis Menard Reviewed by Dimitri Glazkov. REGRESSION(r83397) [Qt] When clicking on the media elements they grow 2 pixels. https://bugs.webkit.org/show_bug.cgi?id=58477 Since r83397 the media controls elements are actual DOM elements. Therefore the global style-sheet applies to them. html.css defines input[type="button"]:active to be border-style: inset which means that when the buttons are active they grow by their border size. Therefore ports which are not using the borders must explicitly disable them in their custom stylesheet. * css/mediaControlsQt.css: (audio::-webkit-media-controls-mute-button): (video::-webkit-media-controls-mute-button): (audio::-webkit-media-controls-play-button): (video::-webkit-media-controls-play-button): (video::-webkit-media-controls-fullscreen-button): * css/mediaControlsQuickTime.css: (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button): (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button): (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button): (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button): (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button): (audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button): (audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button): (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button): (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button): 2011-04-15 Zelidrag Hornung Reviewed by Darin Fisher. Added enums for external file system type. https://bugs.webkit.org/show_bug.cgi?id=58456 * fileapi/DOMFileSystemBase.cpp: (WebCore::DOMFileSystemBase::crackFileSystemURL): * fileapi/DOMFileSystemBase.h: * fileapi/EntryBase.cpp: (WebCore::EntryBase::toURL): * page/DOMWindow.cpp: (WebCore::DOMWindow::requestFileSystem): * page/DOMWindow.h: * platform/AsyncFileSystem.h: * workers/WorkerContext.cpp: (WebCore::WorkerContext::requestFileSystem): (WebCore::WorkerContext::requestFileSystemSync): * workers/WorkerContext.h: 2011-04-15 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: make resource revisions use dedicated type (not Resource clone). https://bugs.webkit.org/show_bug.cgi?id=58659 * inspector/front-end/CSSStyleModel.js: (WebInspector.CSSStyleModel.prototype.setStyleSheetText): * inspector/front-end/Resource.js: (WebInspector.Resource.prototype.addRevision): (WebInspector.Resource.prototype._innerRequestContent.onResourceContent): (WebInspector.Resource.prototype._innerRequestContent): (WebInspector.ResourceRevision): (WebInspector.ResourceRevision.prototype.get resource): (WebInspector.ResourceRevision.prototype.get timestamp): (WebInspector.ResourceRevision.prototype.get content): (WebInspector.ResourceRevision.prototype.revertToThis): (WebInspector.ResourceRevision.prototype.requestContent.mycallback): (WebInspector.ResourceRevision.prototype.requestContent): * inspector/front-end/ResourceView.js: (WebInspector.ResourceView.resourceViewTypeMatchesResource): (WebInspector.ResourceView.resourceViewForResource): (WebInspector.ResourceView.recreateResourceView): (WebInspector.ResourceView.existingResourceViewForResource): (WebInspector.RevisionSourceFrame): (WebInspector.RevisionSourceFrame.prototype.get resource): (WebInspector.RevisionSourceFrame.prototype.isContentEditable): (WebInspector.RevisionSourceFrame.prototype.requestContent): * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype._showResourceView): (WebInspector.ResourcesPanel.prototype._showRevisionView): (WebInspector.ResourcesPanel.prototype._fetchAndApplyDiffMarkup.step1): (WebInspector.ResourcesPanel.prototype._fetchAndApplyDiffMarkup.step2): (WebInspector.ResourcesPanel.prototype._fetchAndApplyDiffMarkup): (WebInspector.ResourceRevisionTreeElement): (WebInspector.ResourceRevisionTreeElement.prototype.get itemURL): (WebInspector.ResourceRevisionTreeElement.prototype.onselect): (WebInspector.ResourceRevisionTreeElement.prototype._ondragstart): (WebInspector.ResourceRevisionTreeElement.prototype._handleContextMenuEvent): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype._ensureContentLoaded): (WebInspector.SourceFrame.prototype.requestContent): (WebInspector.SourceFrame.prototype.commitEditing.didEditContent): (WebInspector.SourceFrame.prototype.commitEditing): 2011-04-15 Alexander Pavlov Reviewed by Yury Semikhatsky. Web Inspector: Prevent Backspace keypresses from routing into the inspected page https://bugs.webkit.org/show_bug.cgi?id=58653 * inspector/front-end/inspector.js: (WebInspector.documentKeyDown): 2011-04-15 Alice Boxhall Reviewed by Ryosuke Niwa. Text selection changes unexpectedly when dragging out of the https://bugs.webkit.org/show_bug.cgi?id=55552 Tests: editing/selection/select-out-of-editable.html editing/selection/select-out-of-floated-contenteditable.html editing/selection/select-out-of-floated-input.html editing/selection/select-out-of-floated-textarea.html * page/EventHandler.cpp: (WebCore::selectionExtentRespectingEditingBoundary): When dragging from an editable element, check that the endpoint is not outside the element. If it is, translate the point into a local point within the editable element. (WebCore::EventHandler::updateSelectionForMouseDrag): Call targetPositionForSelectionEndpoint() to calculate the selection endpoint. 2011-04-15 Adam Roben Roll out r83954 It was causing fast/dom/Window/timer-null-script-execution-context.html to crash on multiple bots. See . * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::setTimeout): (WebCore::JSDOMWindow::setInterval): * bindings/js/JSWorkerContextCustom.cpp: (WebCore::JSWorkerContext::setTimeout): (WebCore::JSWorkerContext::setInterval): * bindings/js/ScheduledAction.cpp: (WebCore::ScheduledAction::create): * bindings/js/ScheduledAction.h: * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::WindowSetTimeoutImpl): * page/ContentSecurityPolicy.cpp: * page/ContentSecurityPolicy.h: 2011-04-15 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: refactor resource setContent / revisions infrastructure to get rid of onRevert callback. https://bugs.webkit.org/show_bug.cgi?id=58649 Instead, we will have DomainModel/Resource binding responsible for changing underlying model upon resource changes and vice versa. * inspector/Inspector.json: * inspector/InspectorCSSAgent.cpp: (WebCore::InspectorCSSAgent::getStyleSheet): (WebCore::InspectorCSSAgent::getStyleSheetText): (WebCore::InspectorCSSAgent::setStyleSheetText): (WebCore::InspectorCSSAgent::setPropertyText): (WebCore::InspectorCSSAgent::toggleProperty): (WebCore::InspectorCSSAgent::setRuleSelector): (WebCore::InspectorCSSAgent::assertStyleSheetForId): * inspector/InspectorCSSAgent.h: * inspector/front-end/CSSStyleModel.js: (WebInspector.CSSStyleModel): (WebInspector.CSSStyleModel.prototype.setRuleSelector): (WebInspector.CSSStyleModel.prototype.addRule): (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged.callback): (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged): (WebInspector.CSSStyleModel.prototype.setStyleSheetText): (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt): (WebInspector.CSSProperty.prototype.setText): (WebInspector.CSSProperty.prototype.setText.callback): (WebInspector.CSSProperty.prototype.setDisabled.callback): (WebInspector.CSSProperty.prototype.setDisabled): (WebInspector.CSSStyleSheet.prototype.setText): (WebInspector.CSSStyleModelResourceBinding): (WebInspector.CSSStyleModelResourceBinding.prototype.setContent): (WebInspector.CSSStyleModelResourceBinding.prototype._frameNavigated): (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent): (WebInspector.CSSStyleModelResourceBinding.prototype._loadStyleSheetHeaders): (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged.setContent): (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged): * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel): (WebInspector.DebuggerPresentationModel.prototype.editScriptSource.didEditScriptSource): (WebInspector.DebuggerPresentationModel.prototype.editScriptSource.didReceiveSource): (WebInspector.DebuggerPresentationModel.prototype.editScriptSource): (WebInspector.DebuggerPresentationModelResourceBinding): (WebInspector.DebuggerPresentationModelResourceBinding.prototype.canSetContent): (WebInspector.DebuggerPresentationModelResourceBinding.prototype.setContent): * inspector/front-end/Object.js: (WebInspector.Object.prototype.hasEventListeners): * inspector/front-end/Resource.js: (WebInspector.Resource): (WebInspector.Resource.registerDomainModelBinding): (WebInspector.Resource.prototype.isEditable): (WebInspector.Resource.prototype.setContent): (WebInspector.Resource.prototype.addRevision): (WebInspector.Resource.prototype.revertToThis.callback): (WebInspector.Resource.prototype.revertToThis): (WebInspector.ResourceDomainModelBinding): (WebInspector.ResourceDomainModelBinding.prototype.canSetContent): (WebInspector.ResourceDomainModelBinding.prototype.setContent): * inspector/front-end/ResourceView.js: (WebInspector.ResourceView.createResourceView): (WebInspector.ResourceView.resourceViewTypeMatchesResource): (WebInspector.ResourceSourceFrame.prototype.isContentEditable): (WebInspector.ResourceSourceFrame.prototype.editContent): (WebInspector.ResourceSourceFrame.prototype.endEditing): (WebInspector.ResourceSourceFrame.prototype._clearIncrementalUpdateTimer): (WebInspector.ResourceSourceFrame.prototype._requestContent): * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype._resourceAdded): (WebInspector.FrameResourceTreeElement): (WebInspector.FrameResourceTreeElement.prototype._populateRevisions): (WebInspector.FrameResourceTreeElement.prototype._revisionAdded): (WebInspector.FrameResourceTreeElement.prototype._appendRevision): * inspector/front-end/inspector.html: 2011-04-15 Andrey Kosyakov Unreviewed, rolling out r83949. http://trac.webkit.org/changeset/83949 https://bugs.webkit.org/show_bug.cgi?id=57960 broke 31 tests in chromium win & linux * platform/graphics/chromium/GLES2Canvas.cpp: (WebCore::GLES2Canvas::drawTexturedRect): * platform/graphics/chromium/GLES2Canvas.h: * platform/graphics/gpu/Texture.cpp: (WebCore::copySubRect): (WebCore::Texture::load): (WebCore::Texture::updateSubRect): * platform/graphics/gpu/Texture.h: * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::getImageData): (WebCore::putImageData): (WebCore::ImageBuffer::putUnmultipliedImageData): (WebCore::ImageBuffer::putPremultipliedImageData): 2011-04-15 Ben Taylor Reviewed by Alexey Proskuryakov. Fix building with Sun Studio 12: function pointers for extern "C" are treated differently https://bugs.webkit.org/show_bug.cgi?id=58508 Since extern "C" makes a different type (although most compilers ignore that), we should be more careful when passing NPAPI callback functions. * plugins/npapi.cpp: (NPN_PluginThreadAsyncCall): 2011-04-15 Adam Barth Reviewed by Eric Seidel. CSP should block string arguments to setTimeout and setInterval unless options eval-script https://bugs.webkit.org/show_bug.cgi?id=58610 It's somewhat sadness that the JSC and V8 code for setTimeout and setInterval are so different. I struggled for a while with how to handle the worker case, but I decided to punt on it for now. Tests: http/tests/security/contentSecurityPolicy/eval-scripts-setInterval-allowed.html http/tests/security/contentSecurityPolicy/eval-scripts-setInterval-blocked.html http/tests/security/contentSecurityPolicy/eval-scripts-setTimeout-allowed.html http/tests/security/contentSecurityPolicy/eval-scripts-setTimeout-blocked.html * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::setTimeout): (WebCore::JSDOMWindow::setInterval): * bindings/js/JSWorkerContextCustom.cpp: (WebCore::JSWorkerContext::setTimeout): (WebCore::JSWorkerContext::setInterval): * bindings/js/ScheduledAction.cpp: (WebCore::ScheduledAction::create): * bindings/js/ScheduledAction.h: * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::WindowSetTimeoutImpl): * page/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowEval): * page/ContentSecurityPolicy.h: 2011-04-15 Adam Barth Reviewed by Eric Seidel. Add support for CSP's 'self' source https://bugs.webkit.org/show_bug.cgi?id=58604 This change is now trivially easy. Test: http/tests/security/contentSecurityPolicy/script-src-self.html * page/ContentSecurityPolicy.cpp: (WebCore::CSPSourceList::addSourceSelf): 2011-04-15 Anna Cavender Reviewed by Eric Carlson. Renaming TRACK feature define to VIDEO_TRACK https://bugs.webkit.org/show_bug.cgi?id=53556 No new tests. No new functionality. * CMakeLists.txt: * Configurations/FeatureDefines.xcconfig: * DerivedSources.make: * GNUmakefile.am: * features.pri: * html/HTMLTagNames.in: * html/HTMLTrackElement.cpp: * html/HTMLTrackElement.h: * html/HTMLTrackElement.idl: 2011-04-14 Andrey Adaikin Reviewed by Pavel Feldman. Web Inspector: Ctrl+Left/Right switch panels during live editing https://bugs.webkit.org/show_bug.cgi?id=58521 Disable Ctrl+Left/Right keyboard shortcuts while in live edit. * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype.readOnlyStateChanged): * inspector/front-end/TextViewer.js: (WebInspector.TextViewer.prototype.set readOnly): (WebInspector.TextViewer.prototype.get readOnly): (WebInspector.TextViewer.prototype._doubleClick): (WebInspector.TextViewer.prototype._commitEditing.didCommitEditing): (WebInspector.TextViewer.prototype._commitEditing): (WebInspector.TextViewer.prototype._cancelEditing): (WebInspector.TextViewerDelegate.prototype.readOnlyStateChanged): (WebInspector.TextEditorMainPanel.prototype.set readOnly): * inspector/front-end/inspector.js: (WebInspector.markBeingEdited): (WebInspector.isEditingAnyField): (WebInspector.startEditing.cleanUpAfterEditing): 2011-04-14 Vsevolod Vlasov Reviewed by Pavel Feldman. Web Inspector: Enable raw HTTP headers support https://bugs.webkit.org/show_bug.cgi?id=58259 Added raw headers text support to inspector. * English.lproj/localizedStrings.js: * inspector/Inspector.json: * inspector/InspectorResourceAgent.cpp: (WebCore::buildObjectForResourceResponse): * inspector/front-end/NetworkManager.js: (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse): * inspector/front-end/Resource.js: (WebInspector.Resource): (WebInspector.Resource.prototype.get transferSize): (WebInspector.Resource.prototype.set requestHeaders): (WebInspector.Resource.prototype.get rawRequestHeadersText): (WebInspector.Resource.prototype.set rawRequestHeadersText): (WebInspector.Resource.prototype.get requestHeadersSize): (WebInspector.Resource.prototype.set responseHeaders): (WebInspector.Resource.prototype.get rawResponseHeadersText): (WebInspector.Resource.prototype.set rawResponseHeadersText): (WebInspector.Resource.prototype.get responseHeadersSize): (WebInspector.Resource.prototype._headersSize): * inspector/front-end/ResourceHeadersView.js: (WebInspector.ResourceHeadersView): (WebInspector.ResourceHeadersView.prototype._refreshParms): (WebInspector.ResourceHeadersView.prototype._refreshRequestHeaders): (WebInspector.ResourceHeadersView.prototype._refreshResponseHeaders): (WebInspector.ResourceHeadersView.prototype._refreshHeadersTitle): (WebInspector.ResourceHeadersView.prototype._refreshHeaders): (WebInspector.ResourceHeadersView.prototype._refreshRawHeadersText): (WebInspector.ResourceHeadersView.prototype._toggleRawRequestHeadersText): (WebInspector.ResourceHeadersView.prototype._toggleRawResponseHeadersText): (WebInspector.ResourceHeadersView.prototype._createToggleButton): (WebInspector.ResourceHeadersView.prototype._createHeadersToggleButton): * inspector/front-end/networkPanel.css: (.resource-headers-view .outline-disclosure li .header-toggle): (.resource-headers-view .outline-disclosure li.expanded .header-toggle): (.resource-headers-view .outline-disclosure li .header-toggle:hover): (.resource-headers-view .outline-disclosure li.raw-headers-text): * platform/network/ResourceLoadInfo.h: 2011-04-14 Justin Novosad Reviewed by Kenneth Russell. [Chromium] Accelerated 2D Canvas is slow to execute putImageData https://bugs.webkit.org/show_bug.cgi?id=57960 * platform/graphics/chromium/GLES2Canvas.cpp: (WebCore::GLES2Canvas::drawTexturedRect): Added an option for using the blend ops for alpha multiplication instead of compositing. (WebCore::GLES2Canvas::applyClipping): (WebCore::GLES2Canvas::putImageData): New method for drawing raw pixel data from memory to the canvas (WebCore::GLES2Canvas::putUnmultipliedImageData): Wrapper for putImageData (WebCore::GLES2Canvas::putPremultipliedImageData): Wrapper for putImageData * platform/graphics/chromium/GLES2Canvas.h: * platform/graphics/gpu/Texture.cpp: (WebCore::copySubRect): (WebCore::Texture::load): (WebCore::Texture::updateSubRect): Added an overload of the updateSubRect method that can receive a pixel of a size that is different from texture size. Improved the performance of updateSubrect by avoiding the allocation of a temporary buffer when not required. * platform/graphics/gpu/Texture.h: * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::getImageData): In the unmultiplied path, division by alpha now performs proper rounding in order to avoid generational degradation with putImageData (WebCore::putImageData): Alpha multiplication now performs proper rounding in order to be consistent with the hardware rendering path: OpenGL always rounds when converting to fixed point representation. (WebCore::ImageBuffer::putUnmultipliedImageData): Now supports a hardware rendering path, which eliminates the need for a readback from the GPU (WebCore::ImageBuffer::putPremultipliedImageData): Now supports a hardware rendering path, which eliminates the need for a readback from the GPU 2011-04-14 Joone Hur Reviewed by Martin Robinson. Creating a CairoPath instance is not thread safe https://bugs.webkit.org/show_bug.cgi?id=58514 This patch allows a cairo surface to be created just one time in order to guarantee thread safety. In addition, CairoPath.{h,cpp} is renamed to PlatformPathCairo.{h,cpp} to prevent confusing them with PathCairo.cpp * CMakeListsEfl.txt: Added PlatformPathCairo.cpp * GNUmakefile.list.am: Added PlatformPathCairo.{h,cpp} instead of CairoPath.h. * platform/graphics/cairo/CairoPath.h: Removed. * platform/graphics/cairo/CairoUtilities.cpp: Include PlatformPathCairo.h instead of CairoPath.h. * platform/graphics/cairo/GraphicsContextCairo.cpp: Ditto. * platform/graphics/cairo/PathCairo.cpp: Ditto. * platform/graphics/cairo/PlatformPathCairo.cpp: Added. (WebCore::getPathSurface): Getting a static cairo surface. (WebCore::CairoPath::CairoPath): Moved the implementation of the constructor into the CPP file. * platform/graphics/cairo/PlatformPathCairo.h: Renamed CairoPath.h to this. (WebCore::CairoPath::~CairoPath): (WebCore::CairoPath::context): 2011-04-14 Nat Duca Reviewed by Darin Fisher. [chromium] Add lowpass filter and graph to fps indicator https://bugs.webkit.org/show_bug.cgi?id=58186 * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp: (WebCore::CCHeadsUpDisplay::CCHeadsUpDisplay): (WebCore::CCHeadsUpDisplay::drawHudContents): (WebCore::CCHeadsUpDisplay::drawFPSCounter): (WebCore::CCHeadsUpDisplay::drawPlatformLayerTree): (WebCore::CCHeadsUpDisplay::onPresent): * platform/graphics/chromium/cc/CCHeadsUpDisplay.h: 2011-04-14 Beth Dakin Reviewed by Adele Peterson. https://bugs.webkit.org/show_bug.cgi?id=58612 Crash switching overlay/non-overlay scrollbar preference (WebCore::Page::setNeedsRecalcStyleInAllFrames + 9) -and corresponding- Speculative fix: Page could definitely be null here. * page/FrameView.cpp: (WebCore::FrameView::scrollbarStyleChanged): 2011-04-14 Vsevolod Vlasov Reviewed by Pavel Feldman. Web Inspector: ResourceResponse should have encodedDataLength field for synchronous requests transfer size https://bugs.webkit.org/show_bug.cgi?id=58447 FrameLoader now takes encoded data length for synchronous requests from the field with the same name. * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadResourceSynchronously): * platform/network/ResourceLoadInfo.h: (WebCore::ResourceLoadInfo::ResourceLoadInfo): 2011-04-14 Alok Priyadarshi Reviewed by James Robinson. Remove dependency on chromium skia::PlatformCanvas https://bugs.webkit.org/show_bug.cgi?id=57563 This patch does not change any functionality, just the type of object skia::PlatformCanvas -> SkCanvas. The object is still being created by a factory method skia::CreateBitmapCanvas defined in Chromium. We will eventually define an API that every port using skia will define. * platform/graphics/chromium/FontChromiumWin.cpp: (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::initializeForGDI): (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter): (WebCore::Font::drawComplexText): * platform/graphics/chromium/ImageBufferDataSkia.h: * platform/graphics/chromium/LayerChromium.h: * platform/graphics/chromium/LayerRendererChromium.h: * platform/graphics/chromium/PlatformCanvas.cpp: (WebCore::PlatformCanvas::resize): * platform/graphics/chromium/PlatformCanvas.h: * platform/graphics/chromium/TransparencyWin.cpp: (WebCore::TransparencyWin::compositeTextComposite): (WebCore::TransparencyWin::makeLayerOpaque): * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageBuffer::ImageBuffer): * platform/graphics/skia/ImageSkia.cpp: (WebCore::paintSkBitmap): (WebCore::Image::drawPattern): * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::PlatformContextSkia): (WebCore::PlatformContextSkia::setCanvas): (WebCore::PlatformContextSkia::isNativeFontRenderingAllowed): * platform/graphics/skia/PlatformContextSkia.h: (WebCore::PlatformContextSkia::canvas): (WebCore::PlatformContextSkia::printing): (WebCore::PlatformContextSkia::setPrinting): 2011-04-14 Eric Seidel Reviewed by Simon Fraser. PumpSession should not call currentTime() in the constructor https://bugs.webkit.org/show_bug.cgi?id=55211 currentTime() is expensive. So we avoid calling it in the constructor and instead set startTime on the first check for a yield (which in the synchronous case never happens, and in the yielding case will happen immediately after the first token due to processedTokens being set to INT_MAX). This ended up being a large win on (my local copy of) peacekeeper's domDynamicCreationCreateElement: Before: avg 366.3333333333333 median 366 stdev 2.712112747574399 min 362 max 377 After: avg 345.96666666666664 median 346 stdev 1.6829207415152454 min 343 max 349 * html/parser/HTMLDocumentParser.cpp: * html/parser/HTMLParserScheduler.h: (WebCore::PumpSession::PumpSession): (WebCore::HTMLParserScheduler::checkForYieldBeforeToken): 2011-04-14 Ami Fischman Reviewed by Eric Carlson. Remove unnecessary bottom margin of controls in video elements on media documents. This makes the cases of media documents and non-media documents consistent, and makes it possible to reason about the height of a rendered media document (needed e.g. for sizing iframes). This change is covered by (the currently Skipped, but soon-to-be-un-Skipped) media/video-controls-in-media-document.html layouttest (see bug 54634 for the un-Skipping). https://bugs.webkit.org/show_bug.cgi?id=58442 * css/mediaControls.css: (video:-webkit-full-page-media::-webkit-media-controls-panel): * css/mediaControlsEfl.css: (video:-webkit-full-page-media::-webkit-media-controls-panel): * css/mediaControlsQuickTime.css: (video:-webkit-full-page-media::-webkit-media-controls-panel): 2011-04-14 Geoffrey Garen Reviewed by Oliver Hunt. Use opaque roots instead of direct marking for nodes in the DOM https://bugs.webkit.org/show_bug.cgi?id=58624 A node treats the root of its tree (usually the document) as its opaque root during GC. This is needed for correctness in a generational GC world, but it also happens to be a 3.5X speedup in a DOM-heavy GC test (scratch-gc-dom2.html). * bindings/js/DOMWrapperWorld.cpp: (WebCore::isObservable): (WebCore::isReachableFromDOM): Moved a helper function from JSDOMBinding. We use this function to determine whether a node is observable. (WebCore::JSNodeHandleOwner::isReachableFromOpaqueRoots): Start using our weak handle callback to determine reachability, instead of direct marking traversal through the DOM. * bindings/js/JSAttrCustom.cpp: (WebCore::JSAttr::markChildren): Updated to use the opaque roots mechanism instead of direct marking. * bindings/js/JSDOMBinding.cpp: * bindings/js/JSDOMBinding.h: Moved code mentioned above. Removed markDOMNodeWrapper because it is now unused. This is a good thing because markDOMNodeWrapper used deprecatedAppend, which is not compatible with generational GC. * bindings/js/JSDOMImplementationCustom.cpp: (WebCore::JSDOMImplementation::markChildren): Updated to use opaque roots. * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::markChildren): No need to mark our child nodes directly, since they will take care of themselves through the opaque roots mechanism. * bindings/js/JSNamedNodeMapCustom.cpp: (WebCore::JSNamedNodeMap::markChildren): Updated to use opaque roots. * bindings/js/JSNodeCustom.cpp: (WebCore::JSNode::markChildren): No need to mark our tree or our document directly, since they will take care of themselves through the opaque roots mechanism. * bindings/js/JSNodeCustom.h: (WebCore::root): Helper function for accessing the root of a node tree. This is O(1) while you're in the document, O(log(N)) when you're in a reasonably balanced disconnected tree, and O(N) in the pathological case of a disconnected tree that's shaped like a linked list. If average case O(long(N)) turns out to be too slow, we can optimize through use of rare data or an external hash table, but it is so uncommon that I have ignored it for now. * bindings/js/JSSVGElementInstanceCustom.cpp: (WebCore::JSSVGElementInstance::markChildren): Updated to use opaque roots. 2011-04-14 Mike Reed Reviewed by Kenneth Russell. fix shadows with gradients https://bugs.webkit.org/show_bug.cgi?id=58376 No new tests. Existing tests exercise this LayoutTests/fast/canvas/canvas-fillPath-gradient-shadow.html * platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::GraphicsContext::setPlatformShadow): 2011-04-14 Vsevolod Vlasov Reviewed by Pavel Feldman. Web Inspector: No headers information in network panel for downloads. https://bugs.webkit.org/show_bug.cgi?id=58139 Passed resource response to inspector for PolicyDownload and PolicyIgnore requests. Test: http/tests/inspector/network/download.html * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::didReceiveResourceResponseButCanceledImpl): (WebCore::InspectorInstrumentation::continueWithPolicyDownloadImpl): (WebCore::InspectorInstrumentation::continueWithPolicyIgnoreImpl): * inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::continueWithPolicyDownload): (WebCore::InspectorInstrumentation::continueWithPolicyIgnore): * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::continueAfterContentPolicy): 2011-04-14 Joone Hur Reviewed by Martin Robinson. Convert use of raw pointers to RefPtr in using Cairo https://bugs.webkit.org/show_bug.cgi?id=57717 No new tests added becaue of just replacing raw pointers with smart pointers. * platform/graphics/cairo/ContextShadowCairo.cpp: Use a RefPtr instead of raw pointer. (WebCore::purgeScratchBuffer): (WebCore::getScratchBuffer): * platform/graphics/cairo/ImageBufferCairo.cpp: Use a RefPtr instead of raw pointer. (copySurface): 2011-04-14 Naoki Takano Reviewed by Eric Seidel. [Chromium]Change menu list background fallback value to transparent to work background:none for HTML select tag. https://bugs.webkit.org/show_bug.cgi?id=57818 Test: fast/forms/select-background-none.html This fix is only for Chromium on Linux. Chromium on Mac already works fine. But Windows has the same problem. This change doesn't include Windows part. * rendering/RenderThemeChromiumLinux.cpp: (WebCore::RenderThemeChromiumLinux::paintMenuList): Change the default color to transparent. 2011-04-14 Luke Macpherson Reviewed by Dimitri Glazkov. Implement border style css properties in CSSStyleApplyProperty https://bugs.webkit.org/show_bug.cgi?id=58506 No new functionality added. * css/CSSStyleApplyProperty.cpp: (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): Added new property initializers. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Removed old property handlers. 2011-04-14 Dimitri Glazkov Reviewed by Ojan Vafai. Presence of shadow DOM should suppress rendering of ordinary child nodes https://bugs.webkit.org/show_bug.cgi?id=58073 Test: fast/dom/shadow/no-renderers-for-light-children.html * dom/Node.cpp: (WebCore::shadowRoot): Added a helper function. (WebCore::Node::setDocumentRecursively): Changed to use the helper. (WebCore::shouldCreateRendererFor): Expanded a long condition check into a helper function, added a check for children of an element with a shadow DOM. (WebCore::Node::createRendererAndStyle): Changed to use the helper. 2011-04-14 Adrienne Walker Reviewed by James Robinson. [chromium] Tile content and image layers https://bugs.webkit.org/show_bug.cgi?id=57113 Layers tile by default if any dimension is larger than 512. Smaller layers are contained within a single texture but still use the tiler infrastructure so that there's only one code path. Remove large layer support from content layers. Content layers no longer own a platform canvas--they own a tiler. Refactor tiler to allow for better separation of update/upload/paint. Add rect parameter to update and draw functions on layers for the layer-space rect of interest. This is necessary to know which tiles need to be drawn. * platform/graphics/chromium/ContentLayerChromium.cpp: (WebCore::ContentLayerChromium::ContentLayerChromium): (WebCore::ContentLayerChromium::~ContentLayerChromium): (WebCore::ContentLayerPainter::ContentLayerPainter): (WebCore::ContentLayerPainter::paint): (WebCore::ContentLayerChromium::paintContentsIfDirty): (WebCore::ContentLayerChromium::setLayerRenderer): (WebCore::ContentLayerChromium::tilingTransform): (WebCore::ContentLayerChromium::visibleLayerRect): (WebCore::ContentLayerChromium::layerBounds): (WebCore::ContentLayerChromium::updateLayerSize): (WebCore::ContentLayerChromium::draw): (WebCore::ContentLayerChromium::createTilerIfNeeded): (WebCore::ContentLayerChromium::updateCompositorResources): (WebCore::ContentLayerChromium::setTilingOption): (WebCore::ContentLayerChromium::bindContentsTexture): (WebCore::ContentLayerChromium::unreserveContentsTexture): (WebCore::ContentLayerChromium::setIsMask): (WebCore::ContentLayerChromium::dumpLayerProperties): * platform/graphics/chromium/ContentLayerChromium.h: (WebCore::ContentLayerChromium::drawsContent): * platform/graphics/chromium/GraphicsLayerChromium.cpp: (WebCore::GraphicsLayerChromium::setMaskLayer): * platform/graphics/chromium/ImageLayerChromium.cpp: (WebCore::ImageLayerChromium::paintContentsIfDirty): (WebCore::ImageLayerChromium::updateCompositorResources): (WebCore::ImageLayerChromium::layerBounds): (WebCore::ImageLayerChromium::tilingTransform): * platform/graphics/chromium/ImageLayerChromium.h: * platform/graphics/chromium/LayerChromium.h: (WebCore::LayerChromium::invalidateRect): (WebCore::LayerChromium::paintContentsIfDirty): (WebCore::LayerChromium::setIsMask): (WebCore::LayerChromium::draw): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::drawRootLayer): (WebCore::LayerRendererChromium::drawLayers): (WebCore::LayerRendererChromium::paintContentsRecursive): (WebCore::LayerRendererChromium::copyOffscreenTextureToDisplay): (WebCore::LayerRendererChromium::drawLayer): (WebCore::LayerRendererChromium::initializeSharedObjects): (WebCore::LayerRendererChromium::cleanupSharedObjects): * platform/graphics/chromium/LayerRendererChromium.h: * platform/graphics/chromium/LayerTilerChromium.cpp: (WebCore::LayerTilerChromium::setTileSize): (WebCore::LayerTilerChromium::getSingleTexture): (WebCore::LayerTilerChromium::invalidateRect): (WebCore::LayerTilerChromium::update): (WebCore::LayerTilerChromium::uploadCanvas): (WebCore::LayerTilerChromium::updateFromPixels): (WebCore::LayerTilerChromium::draw): (WebCore::LayerTilerChromium::unreserveTextures): * platform/graphics/chromium/LayerTilerChromium.h: (WebCore::LayerTilerChromium::setLayerRenderer): (WebCore::LayerTilerChromium::skipsDraw): * platform/graphics/chromium/PlatformCanvas.cpp: (WebCore::PlatformCanvas::AutoLocker::AutoLocker): (WebCore::PlatformCanvas::Painter::Painter): * platform/graphics/chromium/PlatformCanvas.h: * platform/graphics/chromium/RenderSurfaceChromium.cpp: (WebCore::RenderSurfaceChromium::draw): * platform/graphics/chromium/RenderSurfaceChromium.h: * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp: (WebCore::CCCanvasLayerImpl::draw): * platform/graphics/chromium/cc/CCCanvasLayerImpl.h: * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp: (WebCore::CCHeadsUpDisplay::draw): * platform/graphics/chromium/cc/CCLayerImpl.cpp: (WebCore::CCLayerImpl::draw): * platform/graphics/chromium/cc/CCLayerImpl.h: * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp: (WebCore::CCPluginLayerImpl::draw): * platform/graphics/chromium/cc/CCPluginLayerImpl.h: * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp: (WebCore::CCVideoLayerImpl::draw): * platform/graphics/chromium/cc/CCVideoLayerImpl.h: 2011-04-14 James Robinson Reviewed by Darin Fisher. [chromium] REGRESSION(83820): Composited scrollbar layers sometimes not positioned when initially creating frame https://bugs.webkit.org/show_bug.cgi?id=58575 Tell the RenderLayerCompositor to create/destroy composited layers for overflow controls on a FrameView when visibleContentsResized() is called, not contentsResized() so that we always update layers when adding or removing scrollbars. Covered by several chromium pixel tests. * page/FrameView.cpp: (WebCore::FrameView::contentsResized): (WebCore::FrameView::visibleContentsResized): 2011-04-07 David Levin Reviewed by Brady Eidson. Fix some threading issues in IconDatabase. https://bugs.webkit.org/show_bug.cgi?id=57985 No functionality change so no new tests. It would be very hard to test this, but I am working on a change for bug 31639 to detect these (which makes layout tests fail for at least one of these issues). * loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::setIconDataForIconURL): Release imageData so that it won't get deref'ed outside of locks. (WebCore::IconDatabase::readFromDatabase): Ditto. (WebCore::IconDatabase::writeToDatabase): Acquire m_urlAndIconLock because the SharedBuffer<> data is used, and this lock seems to be the one which consistently guards it. 2011-04-14 Dmitry Titov Reviewed by David Levin. Simplifying Worker termination sequence (removing unnecessary mutex) https://bugs.webkit.org/show_bug.cgi?id=57090 No new tests. Existing Worker tests should pass. * bindings/js/JSEventListener.cpp: (WebCore::JSEventListener::handleEvent): Check for Terminator-caused exception (or Terminator::shouldTerminate since sometimes JS might not run significant enough chunk to be terminated by Terminator) and set the flag to forbid future reentry into JS. * bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::evaluate): (WebCore::WorkerScriptController::scheduleExecutionTermination): (WebCore::WorkerScriptController::forbidExecution): (WebCore::WorkerScriptController::isExecutionForbidden): * bindings/js/WorkerScriptController.h: * bindings/v8/WorkerScriptController.cpp: (WebCore::WorkerScriptController::evaluate): (WebCore::WorkerScriptController::scheduleExecutionTermination): (WebCore::WorkerScriptController::forbidExecution): (WebCore::WorkerScriptController::isExecutionForbidden): * bindings/v8/WorkerScriptController.h: (WebCore::WorkerScriptController::proxy): Symmetrical changes to JSC and V8 WorkerScriptControllers: - remove Mutex around operations with executionForbidden flag. - set/check that flag only on Worker thread. - some renaming in attempt to better reflect what the methods do. * bindings/v8/V8AbstractEventListener.cpp: (WebCore::V8AbstractEventListener::handleEvent): (WebCore::V8AbstractEventListener::invokeEventHandler): * bindings/v8/WorkerContextExecutionProxy.cpp: (WebCore::WorkerContextExecutionProxy::evaluate): Check for v8::TryCatch::CanContinue() and set forbidExecution flag. This result indicates that TerminateExecution() was in effect - we should not reenter V8 anymore after that. * dom/Document.h: (WebCore::Document::isJSExecutionForbidden): * dom/MessagePort.cpp: (WebCore::MessagePort::dispatchMessages): Stop dispatching messages once the worker context started to close. Per Workers spec, once WorkerGlobalScope.Close() is called, the next JS execution does not happen, including onmessage events. Before this change, Close() was setting the forbidExecution flag, indirectly stopping events from dispatching. * dom/ScriptExecutionContext.h: * workers/WorkerContext.cpp: (WebCore::WorkerContext::close): (WebCore::WorkerContext::isJSExecutionForbidden): * workers/WorkerContext.h: * workers/WorkerThread.cpp: (WebCore::WorkerThread::workerThread): (WebCore::WorkerThread::stop): 2011-04-14 Beth Dakin Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=56493 Drag-scrolling overlay scrollbars thumb in overflow regions does not work -and corresponding- There was an original change to fix this in the normal hit-testing case, but hit testing of transformed and/or positioned objects was still broken. The transformed case is fixed by sending an OverlayScrollbarSizeRelevancy parameter to calculateRects(). Getting positioned objects right is a little trickier. Those need to opt into using temporary clip rects during hit testing. To avoid doing that when it is not necessary, I added a new bit to ScrollView to track whether there are currently overlay scrollbars painted in the view. * platform/ScrollView.cpp: (WebCore::ScrollView::ScrollView): (WebCore::ScrollView::wheelEvent): * platform/ScrollView.h: (WebCore::ScrollView::containsScrollableAreaWithOverlayScrollbars): (WebCore::ScrollView::setContainsScrollableAreaWithOverlayScrollbars): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintOverflowControls): (WebCore::RenderLayer::hitTestLayer): (WebCore::RenderLayer::updateClipRects): (WebCore::RenderLayer::calculateClipRects): (WebCore::RenderLayer::parentClipRects): (WebCore::RenderLayer::backgroundClipRect): (WebCore::RenderLayer::calculateRects): * rendering/RenderLayer.h: 2011-04-14 Antti Koivisto Reviewed by Oliver Hunt. REGRESSION(r74107): Including svg format in @font-face rules makes Web Fonts fail to load https://bugs.webkit.org/show_bug.cgi?id=57766 Move the knowledge of whether to interpret a font as SVG from CachedFont to CSSFontFaceSource. This way we can try to interpret the same cached resource in multiple ways. Test: fast/css/font-face-repeated-url.html * css/CSSFontFaceSource.cpp: (WebCore::CSSFontFaceSource::CSSFontFaceSource): (WebCore::CSSFontFaceSource::getFontData): * css/CSSFontFaceSource.h: (WebCore::CSSFontFaceSource::setHasExternalSVGFont): * css/CSSFontSelector.cpp: (WebCore::CSSFontSelector::addFontFaceRule): * loader/cache/CachedFont.cpp: (WebCore::CachedFont::CachedFont): (WebCore::CachedFont::ensureCustomFontData): (WebCore::CachedFont::ensureSVGFontData): Use TextResourceDecoder correctly. (WebCore::CachedFont::getSVGFontById): * loader/cache/CachedFont.h: * svg/SVGFontFaceUriElement.cpp: (WebCore::SVGFontFaceUriElement::loadFont): 2011-04-14 Kenneth Russell Reviewed by Dimitri Glazkov. Enable building Web Audio with MKL in Chrome-branded builds https://bugs.webkit.org/show_bug.cgi?id=58561 Factored out MKL support into a separate GYP file that is incorporated in Chrome-branded builds. Changed how the FFTFrame implementations are pulled in and chosen so that all files can be unconditionally compiled. Tested with both Chrome-branded build (incorporating MKL) and Chromium build (building just FFTFrameStub.cpp) on Linux. * WebCore.gyp/WebCore.gyp: * platform/audio/fftw/FFTFrameFFTW.cpp: * platform/audio/mkl/FFTFrameMKL.cpp: 2011-04-14 Ragner Magalhaes Reviewed by Antonio Gomes. [Qt] Web Inspector does not highlight elements https://bugs.webkit.org/show_bug.cgi?id=35125 We should call drawNodeHighlight() just if a highlighted node exists to avoid do save()/restore() on the Graphics Context unnecessarily. Added highlightedNode() method to check if we need to call drawNodeHighlight() and only on this case do save()/restore() on the Graphics Context. * inspector/InspectorAgent.h: (WebCore::InspectorAgent::highlightedNode): 2011-04-14 Adrienne Walker Reviewed by James Robinson. [chromium] TilingData should return 1 tile when tile size is texture size. https://bugs.webkit.org/show_bug.cgi?id=58364 * platform/graphics/gpu/TilingData.cpp: (WebCore::computeNumTiles): 2011-04-14 Andy Estes Reviewed by Dan Bernstein. REGRESSION (r72141): Acid3 rendering is not pixel perfect. https://bugs.webkit.org/show_bug.cgi?id=55734 WebCore should render text with a 0px font size at 0px regardless of minimum font size settings. This is compatible with other browsers that have a minimum font size preference and ensures pixel-perfect rendering on Acid3. Test: fast/text/zero-font-size.html * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize): If specifiedSize is 0, return specified size regardless of zoom factor or minimum font size. 2011-04-14 Matthew Delaney Reviewed by Simon Fraser. Have canvas drawImageFromRect just redirect to use drawImage https://bugs.webkit.org/show_bug.cgi?id=58516 Test: fast/canvas/drawImageFromRect_withToDataURLAsSource.html * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage): (WebCore::CanvasRenderingContext2D::drawImageFromRect): * html/canvas/CanvasRenderingContext2D.h: 2011-04-14 James Robinson Reviewed by Simon Fraser. REGRESSION (r83820): Lots of compositing tests failing on Windows 7 Release (Tests) https://bugs.webkit.org/show_bug.cgi?id=58535 Change PLATFORM(MAC) guards to !PLATFORM(CHROMIUM) so they apply correctly to the windows build. * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer): (WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer): (WebCore::RenderLayerBacking::requiresScrollCornerLayer): * rendering/RenderLayerCompositor.cpp: (WebCore::shouldCompositeOverflowControls): 2011-04-14 Jian Li Reviewed by Darin Fisher. BlobBuilder should be vendor-prefixed https://bugs.webkit.org/show_bug.cgi?id=58518 Renamed BlobBuilder to WebKitBlobBuilder. * Android.derived.jscbindings.mk: * Android.derived.v8bindings.mk: * CMakeLists.txt: * CodeGenerators.pri: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * fileapi/WebKitBlobBuilder.cpp: Renamed from Source/WebCore/fileapi/BlobBuilder.cpp. (WebCore::WebKitBlobBuilder::WebKitBlobBuilder): (WebCore::WebKitBlobBuilder::getBuffer): (WebCore::WebKitBlobBuilder::append): (WebCore::WebKitBlobBuilder::getBlob): * fileapi/WebKitBlobBuilder.h: Renamed from Source/WebCore/fileapi/BlobBuilder.h. (WebCore::WebKitBlobBuilder::create): * fileapi/WebKitBlobBuilder.idl: Renamed from Source/WebCore/fileapi/BlobBuilder.idl. * page/DOMWindow.idl: * workers/WorkerContext.idl: 2011-04-14 Adam Barth Remove some trailing whitespace. I'm making this change to initialize the SVN credentials on a new commit-queue machine. I'm sure there's a better way to do this, but I don't know it. * dom/Document.cpp: (WebCore::Document::Document): 2011-04-14 Pratik Solanki Reviewed by David Kilzer. Set minimum priority for fast lane connections https://bugs.webkit.org/show_bug.cgi?id=58353 * WebCore.exp.in: * platform/mac/WebCoreSystemInterface.h: * platform/mac/WebCoreSystemInterface.mm: * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::initializeMaximumHTTPConnectionCountPerHost): Call wkSetHTTPPipeliningMinimumFastLanePriority to allow javascript resources to use the fast lane connections. 2011-04-14 Kenneth Russell Reviewed by Dimitri Glazkov. Fix Web Audio build on Linux Debug and with stub FFTFrame https://bugs.webkit.org/show_bug.cgi?id=58555 Built Chromium/Linux in Debug mode to test. * platform/audio/FFTFrame.cpp: * platform/audio/FFTFrameStub.cpp: (WebCore::FFTFrame::initialize): * webaudio/AudioContext.cpp: * webaudio/DefaultAudioDestinationNode.cpp: 2011-04-14 Yury Semikhatsky Reviewed by Pavel Feldman. [v8] Web Inspector: add initial implementation of WorkerScriptDebugServer https://bugs.webkit.org/show_bug.cgi?id=58552 * bindings/v8/DebuggerScript.js: * bindings/v8/WorkerContextExecutionProxy.cpp: (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): each worker context now have a debug id (similar to frame contexts). * bindings/v8/WorkerScriptDebugServer.cpp: (WebCore::retrieveWorkerContext): (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer): (WebCore::WorkerScriptDebugServer::addListener): (WebCore::WorkerScriptDebugServer::removeListener): (WebCore::WorkerScriptDebugServer::getDebugListenerForContext): (WebCore::WorkerScriptDebugServer::runMessageLoopOnPause): run message loop until debugger command is received and execution is resumed. (WebCore::WorkerScriptDebugServer::quitMessageLoopOnPause): * bindings/v8/WorkerScriptDebugServer.h: * inspector/WorkerDebuggerAgent.cpp: (WebCore::WorkerDebuggerAgent::startListeningScriptDebugServer): (WebCore::WorkerDebuggerAgent::stopListeningScriptDebugServer): 2011-04-14 Jian Li Reviewed by Darin Fisher. Add webkit prefix to Blob.slice method and change its semantics to be like Array.slice https://bugs.webkit.org/show_bug.cgi?id=58496 Renamed Blob.slice to blob.webkitSlice and made it take start and end parameters that're like Array.slice. Test: fast/files/blob-slice-test.html * fileapi/Blob.cpp: (WebCore::Blob::webkitSlice): * fileapi/Blob.h: * fileapi/Blob.idl: 2011-04-14 Andreas Kling Reviewed by Benjamin Poulain. [Qt] Height of "Ahem" font differs from all other ports. https://bugs.webkit.org/show_bug.cgi?id=57954 QFontMetricsF::descent() returns the actual descent minus 1, to account for the baseline. Add it back to get correct metrics for WebKit. QFontMetricsF::leading() may return negative values on some platforms (those using FreeType), this breaks WebKit's assumption that lineSpacing >= (ascent + descent), so we work around this in the same fashion as SimpleFontDataFreeType and SimpleFontDataPango. This is covered by thousands of layout tests. * platform/graphics/qt/SimpleFontDataQt.cpp: (WebCore::SimpleFontData::platformInit): 2011-04-14 Kevin Ollivier [wx] Unreviewed build fixes for wxMSW and wx 2.9.1.1. * platform/graphics/wx/FontPlatformDataWx.cpp: (WebCore::FontPlatformData::FontPlatformData): * platform/wx/FileSystemWx.cpp: (WebCore::writeToFile): 2011-04-14 Anders Carlsson Fix build. RuntimeApplicationChecks.h needs to be a private header so WebKit can find it. * WebCore.xcodeproj/project.pbxproj: 2011-04-14 Pavel Podivilov Unreviewed, build fix for r83864. * inspector/front-end/DOMAgent.js: (WebInspector.DOMAgent.prototype._childNodeRemoved): 2011-04-14 Alexander Pavlov Reviewed by Pavel Feldman. Web Inspector: Content area highlight does not cover scrollbars https://bugs.webkit.org/show_bug.cgi?id=58528 * inspector/DOMNodeHighlighter.cpp: (WebCore::DOMNodeHighlighter::DrawNodeHighlight): 2011-04-14 Pavel Podivilov Reviewed by Pavel Feldman. Web Inspector: re-implement dom breakpoints. https://bugs.webkit.org/show_bug.cgi?id=57038 * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/front-end/BreakpointManager.js: Removed. * inspector/front-end/BreakpointsSidebarPane.js: (WebInspector.NativeBreakpointsSidebarPane): (WebInspector.NativeBreakpointsSidebarPane.prototype._reset): (WebInspector.XHRBreakpointsSidebarPane.prototype._restoreBreakpoints): * inspector/front-end/CallStackSidebarPane.js: (WebInspector.CallStackSidebarPane.prototype.update): (WebInspector.CallStackSidebarPane.prototype.setStatus): * inspector/front-end/DOMAgent.js: (WebInspector.DOMNode): (WebInspector.DOMAgent.prototype._childNodeRemoved): * inspector/front-end/DOMBreakpointsSidebarPane.js: Added. (WebInspector.DOMBreakpointsSidebarPane): (WebInspector.DOMBreakpointsSidebarPane.prototype.setInspectedURL): (WebInspector.DOMBreakpointsSidebarPane.prototype.populateNodeContextMenu.toggleBreakpoint): (WebInspector.DOMBreakpointsSidebarPane.prototype.populateNodeContextMenu): (WebInspector.DOMBreakpointsSidebarPane.prototype.createBreakpointHitStatusMessage.didPushNodeToFrontend): (WebInspector.DOMBreakpointsSidebarPane.prototype.createBreakpointHitStatusMessage): (WebInspector.DOMBreakpointsSidebarPane.prototype._doCreateBreakpointHitStatusMessage.formatters.s): (WebInspector.DOMBreakpointsSidebarPane.prototype._doCreateBreakpointHitStatusMessage.append): (WebInspector.DOMBreakpointsSidebarPane.prototype._doCreateBreakpointHitStatusMessage): (WebInspector.DOMBreakpointsSidebarPane.prototype.nodeRemoved): (WebInspector.DOMBreakpointsSidebarPane.prototype._removeBreakpointsForNode): (WebInspector.DOMBreakpointsSidebarPane.prototype._setBreakpoint): (WebInspector.DOMBreakpointsSidebarPane.prototype._removeBreakpoint): (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu.removeBreakpoint): (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu): (WebInspector.DOMBreakpointsSidebarPane.prototype._checkboxClicked): (WebInspector.DOMBreakpointsSidebarPane.prototype.highlightBreakpoint): (WebInspector.DOMBreakpointsSidebarPane.prototype.clearBreakpointHighlight): (WebInspector.DOMBreakpointsSidebarPane.prototype._createBreakpointId): (WebInspector.DOMBreakpointsSidebarPane.prototype._saveBreakpoints): (WebInspector.DOMBreakpointsSidebarPane.prototype.restoreBreakpoints): * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel): (WebInspector.ElementsPanel.prototype.show): (WebInspector.ElementsPanel.prototype.updateModifiedNodes): (WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes.coalesceCollapsedCrumbs): * inspector/front-end/ElementsTreeOutline.js: (WebInspector.ElementsTreeElement.prototype._populateTagContextMenu): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel): (WebInspector.ScriptsPanel.prototype.show): (WebInspector.ScriptsPanel.prototype._debuggerPaused.didCreateBreakpointHitStatusMessage): (WebInspector.ScriptsPanel.prototype._debuggerPaused.else.didGetSourceLocation): (WebInspector.ScriptsPanel.prototype._debuggerPaused): (WebInspector.ScriptsPanel.prototype._clearInterface): * inspector/front-end/Settings.js: (WebInspector.Settings): (WebInspector.Settings.prototype._set): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: * inspector/front-end/inspector.js: (WebInspector.inspectedURLChanged): * inspector/front-end/utilities.js: (): 2011-04-14 Satish Sampath Reviewed by Kent Tamura. Disable speech input for readonly and disabled input fields. https://bugs.webkit.org/show_bug.cgi?id=58540 Test: fast/speech/input-readonly-and-disabled.html * html/shadow/TextControlInnerElements.cpp: (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): (WebCore::InputFieldSpeechButtonElement::setRecognitionResult): 2011-04-14 Ilya Tikhonovsky Unreviewed. Rollout r83849 and r83857. * inspector/Inspector.json: * inspector/InspectorDatabaseAgent.cpp: (WebCore::InspectorDatabaseAgent::didOpenDatabase): (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent): (WebCore::InspectorDatabaseAgent::setFrontend): (WebCore::InspectorDatabaseAgent::clearFrontend): (WebCore::InspectorDatabaseAgent::getDatabaseTableNames): (WebCore::InspectorDatabaseAgent::executeSQL): * inspector/InspectorDatabaseAgent.h: * inspector/front-end/inspector.js: 2011-04-14 Dimitri Glazkov Unreviewed, rolling out r83847. http://trac.webkit.org/changeset/83847 https://bugs.webkit.org/show_bug.cgi?id=58477 Chromium media controls do use button borders, so this change is incorrect. * css/mediaControls.css: (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button): (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button): (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline): (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider): (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button): (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button): (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button): (audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button): (audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button): (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button): (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button): 2011-04-14 Andrew Wason Reviewed by Andreas Kling. Fix GraphicsContext3DQt.cpp compilation warnings treated as errors https://bugs.webkit.org/show_bug.cgi?id=58478 No new tests. * platform/graphics/qt/GraphicsContext3DQt.cpp: (WebCore::GraphicsContext3DInternal::getProcAddress): Do not use deprecated QString constructor to avoid warning. (WebCore::GraphicsContext3D::reshape): Use parenthesis to avoid warning. 2011-04-14 Andrey Kosyakov Unreviewed. Removed ScrollableArea::paintScrollCorner() added in r83820, as it breaks chromium clang build (shadowed by RenderLayer::paintScrollCorner() with a different signature) * platform/ScrollableArea.h: 2011-04-14 Mikhail Naganov Reviewed by Pavel Feldman. Web Inspector: [Chromium] Ready to move detailed heap snapshots storage and processing into workers. https://bugs.webkit.org/show_bug.cgi?id=58534 * inspector/front-end/DetailedHeapshotGridNodes.js: (WebInspector.HeapSnapshotGenericObjectNode.prototype.get _countPercent): (WebInspector.HeapSnapshotDiffNode): (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.diffCalculated): (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff): (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.baseIdsReceived): (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.idsReceived): (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider.createProvider): (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider): (WebInspector.HeapSnapshotDiffNode.prototype.get data): * inspector/front-end/DetailedHeapshotView.js: (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived.addNodeIfNonZeroDiff): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren): * inspector/front-end/HeapSnapshot.js: (WebInspector.HeapSnapshot): (WebInspector.HeapSnapshot.prototype.dispose): (WebInspector.HeapSnapshot.prototype.nodeFieldValuesByIndex): (WebInspector.HeapSnapshot.prototype._numbersComparator): (WebInspector.HeapSnapshot.prototype.baseSnapshotHasNode): (WebInspector.HeapSnapshot.prototype.updateBaseNodeIds): (WebInspector.HeapSnapshotsDiff): (WebInspector.HeapSnapshotsDiff.prototype.set baseIds): (WebInspector.HeapSnapshotsDiff.prototype.set baseSelfSizes): (WebInspector.HeapSnapshotsDiff.prototype.calculate): * inspector/front-end/HeapSnapshotProxy.js: (WebInspector.HeapSnapshotProxy): (WebInspector.HeapSnapshotProxy.prototype.createDiff): (WebInspector.HeapSnapshotProxy.prototype.createEdgesProvider): (WebInspector.HeapSnapshotProxy.prototype.createNodesProvider): (WebInspector.HeapSnapshotProxy.prototype.dispose): (WebInspector.HeapSnapshotProxy.prototype.nodeFieldValuesByIndex): (WebInspector.HeapSnapshotProxy.prototype.pushBaseIds): (WebInspector.HeapSnapshotsDiffProxy): (WebInspector.HeapSnapshotsDiffProxy.prototype.calculate): (WebInspector.HeapSnapshotsDiffProxy.prototype.pushBaseIds): (WebInspector.HeapSnapshotsDiffProxy.prototype.pushBaseSelfSizes): 2011-04-14 Ilya Tikhonovsky Reviewed by Pavel Feldman. Web Inspector: The list of Database entries is empty if the page opens a database just before Web Inspector. https://bugs.webkit.org/show_bug.cgi?id=57833 * inspector/Inspector.json: * inspector/InspectorDatabaseAgent.cpp: (WebCore::InspectorDatabaseAgent::didOpenDatabase): (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent): (WebCore::InspectorDatabaseAgent::setFrontend): (WebCore::InspectorDatabaseAgent::enable): (WebCore::InspectorDatabaseAgent::disable): (WebCore::InspectorDatabaseAgent::getDatabaseTableNames): (WebCore::InspectorDatabaseAgent::executeSQL): * inspector/InspectorDatabaseAgent.h: * inspector/front-end/inspector.js: 2011-04-14 Alexander Pavlov Reviewed by Yury Semikhatsky. Web Inspector: [Chromium] "Remove Breakpoint" menu item is absent in the DOM breakpoints sidebar pane https://bugs.webkit.org/show_bug.cgi?id=58530 * inspector/front-end/ElementsPanel.js: 2011-04-14 Alexis Menard Reviewed by Dimitri Glazkov. REGRESSION(r83397) [Qt] When clicking on the media elements they grow 2 pixels. https://bugs.webkit.org/show_bug.cgi?id=58477 Since r83397 the media controls elements are actual DOM elements. Therefore the global style-sheet applies to them. html.css defines input[type="button"]:active to be border-style: inset which means that when the buttons are active they grow by their border size. * css/mediaControls.css: (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button): (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button): (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline): (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider): (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button): (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button): (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button): (audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button): (audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button): (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button): (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button): 2011-04-14 Diego Gonzalez Reviewed by Kenneth Rohde Christiansen. [Qt] Improve disable style for input elements in mobile theme https://bugs.webkit.org/show_bug.cgi?id=58480 * platform/qt/QtMobileWebStyle.cpp: (QtMobileWebStyle::drawControl): (QtMobileWebStyle::drawPrimitive): (QtMobileWebStyle::drawComplexControl): 2011-04-14 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: restore previous selection in Resources panel upon front-end reopen. https://bugs.webkit.org/show_bug.cgi?id=58533 * inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel.prototype._processCachedResources): * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype._initDefaultSelection): (WebInspector.ResourcesPanel.prototype._populateResourceTree): (WebInspector.ResourcesPanel.prototype._cachedResourcesLoaded): * inspector/front-end/inspector.css: (#close-button-left, #close-button-right): 2011-04-14 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: implement incremental CSS free flow editing. https://bugs.webkit.org/show_bug.cgi?id=58529 * inspector/front-end/CSSStyleModel.js: (WebInspector.CSSStyleSheet.prototype.setText): * inspector/front-end/Resource.js: (WebInspector.Resource.prototype.isResourceRevision): (WebInspector.Resource.prototype.setContent): * inspector/front-end/ResourceView.js: (WebInspector.CSSSourceFrame.prototype.isContentEditable): (WebInspector.CSSSourceFrame.prototype.editContent): (WebInspector.CSSSourceFrame.prototype.endEditing.commitIncrementalEdit): (WebInspector.CSSSourceFrame.prototype.endEditing): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype.commitEditing): (WebInspector.SourceFrame.prototype.editContent): 2011-04-14 Ilya Tikhonovsky Reviewed by Pavel Feldman. Web Inspector:Duplicated display of storage db when running Web SQL from an iframe. https://bugs.webkit.org/show_bug.cgi?id=57830 There was created a new InspectorDatabaseResource entry for every didOpenDatabase event. Moreover there is new WebCore::Database for each didOpenDatabase event. I decided to change the old instance of the Database to a new one if they both use the same file. * inspector/InspectorDatabaseAgent.cpp: (WebCore::InspectorDatabaseAgent::didOpenDatabase): (WebCore::InspectorDatabaseAgent::findByFileName): * inspector/InspectorDatabaseAgent.h: * inspector/InspectorDatabaseResource.h: (WebCore::InspectorDatabaseResource::setDatabase): 2011-04-14 Zoltan Herczeg Reviewed by Dirk Schulze. svg/W3C-SVG-1.1-SE/svgdom-over-01-f.svg crashes in Debug build https://bugs.webkit.org/show_bug.cgi?id=58525 A renderer is created even for those filter primitives which parent is not a filter. A rendererIsNeeded() is added to SVGFilterPrimitiveStandardAttributes. Test: svg/W3C-SVG-1.1-SE/svgdom-over-01-f.svg * svg/SVGFilterPrimitiveStandardAttributes.cpp: (WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded): * svg/SVGFilterPrimitiveStandardAttributes.h: 2011-04-14 Alexis Menard Reviewed by Andreas Kling. REGRESSION(r83397) [Qt] When the video is loading and the poster is shown all the controls are not visible except the play button. https://bugs.webkit.org/show_bug.cgi?id=58484 r83397 introduces a new API hasOwnDisabledStateHandlingFor to handle when the controls should be disabled. Qt port paints its own controls, we don't want the default implementation to handle the hidden/disable state for us. Existing tests covers the visibility of the controls. * platform/qt/RenderThemeQt.h: (WebCore::RenderThemeQt::hasOwnDisabledStateHandlingFor): 2011-04-14 Andreas Kling Reviewed by Kenneth Rohde Christiansen. [Qt] Disabled form controls don't actually look disabled. https://bugs.webkit.org/show_bug.cgi?id=58490 Unsetting QStyle::State_Enabled is not enough to get the "disabled" appearance when painting controls. We must also set the QStyleOption's palette's current color group. * platform/qt/RenderThemeQt.cpp: (WebCore::RenderThemeQt::initializeCommonQStyleOptions): 2011-04-14 Nancy Piedra Reviewed by Benjamin Poulain. [Qt] MediaPlayerPrivateQt::supportsType does not parse codec parameter https://bugs.webkit.org/show_bug.cgi?id=58188 The codec parameter in MediaPlayerPrivateQt::supportsType was not parsed into a QStringList. This change parses and trims the list. An additional test was added to video-can-play-type.html to test parsing of codec parameter. * platform/graphics/qt/MediaPlayerPrivateQt.cpp: (WebCore::MediaPlayerPrivateQt::supportsType): 2011-04-14 Zoltan Herczeg Reviewed by Nikolas Zimmermann. Optimizing lightning filter to ARM-NEON SIMD instruction set https://bugs.webkit.org/show_bug.cgi?id=54456 NEON is the SIMD instruction set for ARM. This instruction set allows to speed-up the lighting filter by 4 times on ARM (on WebCore/manual-tests/svg-filter-animation.svg). * WebCore.pri: * WebCore.pro: * platform/graphics/filters/FELighting.cpp: (WebCore::FELighting::drawLighting): (WebCore::getPowerCoefficients): (WebCore::FELighting::drawInteriorPixels): * platform/graphics/filters/FELighting.h: * platform/graphics/filters/arm/FELightingNEON.cpp: Added. (__attribute__): * platform/graphics/filters/arm/FELightingNEON.h: Added. 2011-04-14 Jarkko Sakkinen Reviewed by Benjamin Poulain. [Qt] GraphicsContext3D internal buffers are not freed https://bugs.webkit.org/show_bug.cgi?id=57530 * platform/graphics/qt/GraphicsContext3DQt.cpp: (WebCore::GraphicsContext3DInternal::~GraphicsContext3DInternal): 2011-04-14 Andy Estes Reviewed by Maciej Stachowiak. REGRESSION (r75555): Safari RSS sidebar jiggles when scrolling https://bugs.webkit.org/show_bug.cgi?id=52988 Safari RSS relies on synchronous dispatch of ScrollEvent to update the position of its sidebar during scrolling without producing a jiggling effect. Due to r75555, this event is no longer dispatched synchronously which results in stale repaints before the onscroll handler gets a chance to update the position of the sidebar. Since it is impractical to resolve this issue in Safari RSS itself, add a quirk that restores synchronous ScrollEvent dispatch for Safari RSS. No tests. This is an app-specific change that doesn't affect web content. * Android.mk: Add platform/RuntimeApplicationChecks.[cpp|h] * CMakeLists.txt: Ditto. * GNUmakefile.list.am: Ditto. * WebCore.gypi: Ditto. * WebCore.pro: Ditto. * WebCore.vcproj/WebCore.vcproj: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto. * dom/EventQueue.cpp: (WebCore::shouldDispatchScrollEventSynchronously): Send ScrollEvent synchronously if the embedding application is Safari and the document's URL scheme is "feed" or "feeds". (WebCore::EventQueue::enqueueOrDispatchScrollEvent): Dispatch ScrollEvent synchronously if shouldDispatchScrollEventSynchronously() returns true. * dom/EventQueue.h: * page/EventHandler.cpp: (WebCore::EventHandler::sendScrollEvent): Call enqueueOrDispatchScrollEvent(). * platform/RuntimeApplicationChecks.cpp: Added. (WebCore::mainBundleIsEqualTo): Add a helper routine for CF platforms that checks if the main bundle's identifier is equal to a given string. This function returns false for non-CF platforms. (WebCore::applicationIsSafari): Call mainBundleIsEqualTo(). (WebCore::applicationIsAppleMail): Ditto. (WebCore::applicationIsMicrosoftMessenger): Ditto. (WebCore::applicationIsAdobeInstaller): Ditto. (WebCore::applicationIsAOLInstantMessenger): Ditto. (WebCore::applicationIsMicrosoftMyDay): Ditto. (WebCore::applicationIsMicrosoftOutlook): Ditto. * platform/mac/RuntimeApplicationChecks.mm: Removed. Functions moved to RuntimeApplicationChecks.cpp. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollTo): Call enqueueOrDispatchScrollEvent(). * rendering/RenderListBox.cpp: (WebCore::RenderListBox::scrollTo): Call enqueueOrDispatchScrollEvent(). 2011-04-14 John Bates Reviewed by Kenneth Russell. Fix bug with adding wrong context to LayerRendererChromium and get rid of RefPtr loop. https://bugs.webkit.org/show_bug.cgi?id=58383 * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::addChildContext): (WebCore::LayerRendererChromium::removeChildContext): * platform/graphics/chromium/LayerRendererChromium.h: 2011-04-14 Renata Hodovan Reviewed by Nikolas Zimmermann. CSS related SVG*Element changes doesn't require relayout https://bugs.webkit.org/show_bug.cgi?id=56906 The changes of some CSS related SVGFilter properties e.g. lighting_color, flood_color, flood_opacity need only repaint. To avoid the default invalidation of filters in SVGResourceCache::clientStyleChange() we need an early return. So RenderSVGResourceFilterPrimitive::styleDidChange() can handle these properties via RenderSVGResourceFilter::primitiveAttributeChanged() the same way like we do it for the other SVGAttributes. Tests: svg/dynamic-updates/SVGFEDiffuseLightingElement-inherit-lighting-color-css-prop.html svg/dynamic-updates/SVGFEFloodElement-inherit-flood-color.html svg/dynamic-updates/SVGFESpecularLightingElement-inherit-lighting-color-css-prop.html svg/dynamic-updates/SVGFESpecularLightingElement-lighting-color-css-prop.html * platform/graphics/filters/FEFlood.cpp: (WebCore::FEFlood::setFloodColor): (WebCore::FEFlood::setFloodOpacity): * platform/graphics/filters/FEFlood.h: * platform/graphics/filters/FESpecularLighting.cpp: (WebCore::FESpecularLighting::setLightingColor): * platform/graphics/filters/FESpecularLighting.h: * rendering/svg/RenderSVGResourceFilterPrimitive.cpp: (WebCore::RenderSVGResourceFilterPrimitive::styleDidChange): * rendering/svg/RenderSVGResourceFilterPrimitive.h: * rendering/svg/SVGResourcesCache.cpp: (WebCore::SVGResourcesCache::clientStyleChanged): * svg/SVGFEDiffuseLightingElement.cpp: (WebCore::SVGFEDiffuseLightingElement::setFilterEffectAttribute): * svg/SVGFEFloodElement.cpp: (WebCore::SVGFEFloodElement::setFilterEffectAttribute): * svg/SVGFEFloodElement.h: * svg/SVGFESpecularLightingElement.cpp: (WebCore::SVGFESpecularLightingElement::setFilterEffectAttribute): 2011-04-13 James Robinson Reviewed by Simon Fraser. Allow setting composited backing stores for scrollbars and scroll corners https://bugs.webkit.org/show_bug.cgi?id=57202 This teaches ScrollableArea to manage GraphicsLayer backings for the two scrollbars and scroll corner. ScrollableArea can position the layers and route invalidation and paint calls to the correct place but depends on subclasses to manage the lifetime of the GraphicsLayers and place them into the correct place in the hierarchy. FrameView and RenderLayerCompositor updated to provide layers for frames with overflow controls. that need them. The overflow control layers are siblings of the frame's clip layer. RenderLayer and RenderLayerBacking updated to provide overflow control layers for layers that need them. Currently, layers are only created for overflow controls on layers that are already composited for other reasons and not necessarily for every RenderLayer with overflow. Overflow control layers are siblings of the RenderLayerBacking's clipping layer if it exists, otherwise they are siblings of the layer's normal children. Tested by a number of compositing/ tests that have scrollbars and by these new tests: compositing/iframes/repaint-after-losing-scrollbars.html compositing/overflow/clip-content-under-overflow-controls.html compositing/overflow/content-gains-scrollbars.html compositing/overflow/content-loses-scrollbars.html compositing/overflow/overflow-scrollbar-layers.html compositing/overflow/repaint-after-losing-scrollbars.html * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass): * page/FrameView.cpp: (WebCore::FrameView::layerForHorizontalScrollbar): (WebCore::FrameView::layerForVerticalScrollbar): (WebCore::FrameView::layerForScrollCorner): (WebCore::FrameView::syncCompositingStateForThisFrame): (WebCore::FrameView::contentsResized): (WebCore::FrameView::updateScrollCorner): * page/FrameView.h: * platform/ScrollView.cpp: (WebCore::ScrollView::wheelEvent): * platform/ScrollView.h: * platform/ScrollableArea.cpp: (WebCore::ScrollableArea::invalidateScrollbar): (WebCore::ScrollableArea::invalidateScrollCorner): * platform/ScrollableArea.h: (WebCore::ScrollableArea::paintScrollCorner): (WebCore::ScrollableArea::layerForHorizontalScrollbar): (WebCore::ScrollableArea::layerForVerticalScrollbar): (WebCore::ScrollableArea::layerForScrollCorner): * platform/Scrollbar.cpp: (WebCore::Scrollbar::invalidateRect): * platform/Scrollbar.h: * platform/ScrollbarThemeComposite.cpp: (WebCore::ScrollbarThemeComposite::paint): * platform/graphics/chromium/ContentLayerChromium.cpp: (WebCore::ContentLayerChromium::paintContentsIfDirty): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::create): (WebCore::LayerRendererChromium::LayerRendererChromium): (WebCore::LayerRendererChromium::invalidateRootLayerRect): (WebCore::LayerRendererChromium::drawRootLayer): (WebCore::LayerRendererChromium::setViewport): (WebCore::LayerRendererChromium::updateAndDrawLayers): (WebCore::LayerRendererChromium::updateLayers): (WebCore::LayerRendererChromium::setRootLayer): (WebCore::LayerRendererChromium::cleanupSharedObjects): * platform/graphics/chromium/LayerRendererChromium.h: * platform/mac/ScrollAnimatorMac.mm: (-[ScrollbarPartAnimation setCurrentProgress:]): * platform/win/PopupMenuWin.h: (WebCore::PopupMenuWin::invalidateScrollCornerRect): (WebCore::PopupMenuWin::isScrollCornerVisible): (WebCore::PopupMenuWin::scrollCornerRect): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollCornerRect): (WebCore::RenderLayer::scrollCornerAndResizerRect): (WebCore::RenderLayer::isScrollCornerVisible): (WebCore::RenderLayer::invalidateScrollbarRect): (WebCore::RenderLayer::invalidateScrollCornerRect): (WebCore::RenderLayer::positionOverflowControls): (WebCore::RenderLayer::paintOverflowControls): (WebCore::RenderLayer::paintScrollCorner): (WebCore::RenderLayer::layerForHorizontalScrollbar): (WebCore::RenderLayer::layerForVerticalScrollbar): (WebCore::RenderLayer::layerForScrollCorner): * rendering/RenderLayer.h: (WebCore::RenderLayer::horizontalScrollbar): (WebCore::RenderLayer::verticalScrollbar): * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::~RenderLayerBacking): (WebCore::RenderLayerBacking::updateAfterWidgetResize): (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): (WebCore::RenderLayerBacking::updateInternalHierarchy): (WebCore::RenderLayerBacking::updateClippingLayers): (WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer): (WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer): (WebCore::RenderLayerBacking::requiresScrollCornerLayer): (WebCore::RenderLayerBacking::updateOverflowControlsLayers): (WebCore::paintScrollbar): (WebCore::RenderLayerBacking::paintContents): * rendering/RenderLayerBacking.h: (WebCore::RenderLayerBacking::layerForHorizontalScrollbar): (WebCore::RenderLayerBacking::layerForVerticalScrollbar): (WebCore::RenderLayerBacking::layerForScrollCorner): * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::updateCompositingLayers): (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): (WebCore::RenderLayerCompositor::frameViewDidChangeLocation): (WebCore::RenderLayerCompositor::frameViewDidChangeSize): (WebCore::RenderLayerCompositor::rootPlatformLayer): (WebCore::RenderLayerCompositor::updateRootLayerPosition): (WebCore::paintScrollbar): (WebCore::RenderLayerCompositor::paintContents): (WebCore::shouldCompositeOverflowControls): (WebCore::RenderLayerCompositor::requiresHorizontalScrollbarLayer): (WebCore::RenderLayerCompositor::requiresVerticalScrollbarLayer): (WebCore::RenderLayerCompositor::requiresScrollCornerLayer): (WebCore::RenderLayerCompositor::updateOverflowControlsLayers): (WebCore::RenderLayerCompositor::ensureRootPlatformLayer): (WebCore::RenderLayerCompositor::destroyRootPlatformLayer): (WebCore::RenderLayerCompositor::detachRootPlatformLayer): * rendering/RenderLayerCompositor.h: (WebCore::RenderLayerCompositor::layerForHorizontalScrollbar): (WebCore::RenderLayerCompositor::layerForVerticalScrollbar): (WebCore::RenderLayerCompositor::layerForScrollCorner): * rendering/RenderListBox.h: (WebCore::RenderListBox::isScrollCornerVisible): (WebCore::RenderListBox::scrollCornerRect): (WebCore::RenderListBox::invalidateScrollCornerRect): 2011-04-13 Cary Clark Reviewed by Eric Seidel. [Chromium] allow concurrent Skia and CG datatypes https://bugs.webkit.org/show_bug.cgi?id=57848 The Chromium port is experimenting with running Skia as the WebKit rendering engine, and CoreGraphics as the UI rendering engine. This permits Chromium to unify its graphics story while leveraging OS X to draw elements like scrollbars and buttons. Restructure the common graphics units, points, and rectangles, to convert to Sk-types and CG-types at the same time. This requires only adding to the existing preprocessor commands, and will have no effect on any existing platform. Eventually, WTF_USE_SKIA_ON_MAC_CHROME will be defined to enable this, but for now, there's no functional change. No new tests as this provides no new functionality. * platform/graphics/FloatPoint.h: Add USE(SKIA_ON_MAC_CHROME) to make CG type and operators visible to a Skia-based Chrome Mac build. * platform/graphics/FloatRect.h: Ditto. * platform/graphics/FloatSize.h: Ditto. * platform/graphics/IntPoint.h: Ditto. * platform/graphics/IntRect.h: Ditto. * platform/graphics/IntSize.h: Ditto. * platform/graphics/cg/FloatPointCG.cpp: Ditto. * platform/graphics/cg/FloatRectCG.cpp: Ditto. * platform/graphics/cg/FloatSizeCG.cpp: Ditto. * platform/graphics/cg/IntPointCG.cpp: Ditto. * platform/graphics/cg/IntRectCG.cpp: Ditto. * platform/graphics/cg/IntSizeCG.cpp: Ditto. 2011-04-13 Roland Steiner Reviewed by Dimitri Glazkov. Bug 58460 - childTypeAllowed() should be const https://bugs.webkit.org/show_bug.cgi?id=58460 Made childTypeAllowed const. No new tests. (minor refactoring). * dom/Attr.cpp: (WebCore::Attr::childTypeAllowed): * dom/Attr.h: * dom/CDATASection.cpp: (WebCore::CDATASection::childTypeAllowed): * dom/CDATASection.h: * dom/Comment.cpp: (WebCore::Comment::childTypeAllowed): * dom/Comment.h: * dom/Document.cpp: (WebCore::Document::childTypeAllowed): * dom/Document.h: * dom/DocumentFragment.cpp: (WebCore::DocumentFragment::childTypeAllowed): * dom/DocumentFragment.h: * dom/Element.cpp: (WebCore::Element::childTypeAllowed): * dom/Element.h: * dom/Node.h: (WebCore::Node::childTypeAllowed): * dom/Notation.cpp: (WebCore::Notation::childTypeAllowed): * dom/Notation.h: * dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::childTypeAllowed): * dom/ProcessingInstruction.h: * dom/Text.cpp: (WebCore::Text::childTypeAllowed): * dom/Text.h: 2011-04-13 Jon Lee Reviewed by Maciej Stachowiak. REGRESSION(r81880): Paste menu is disabled for many edit fields (yahoo and google search, yahoo mail msg, forms, etc) https://bugs.webkit.org/show_bug.cgi?id=58284 * WebCore.exp.in: Exporting EditingBehavior.h for use in WebKit2 * editing/EditingBehavior.h: (WebCore::EditingBehavior::shouldClearSelectionWhenLosingWebPageFocus): moving the platform-specific code out of an #ifdef and into this class for run-time instead of compile-time checking 2011-04-13 Yael Aharon Reviewed by Eric Seidel. constructLine should take bidiRuns as a parameter https://bugs.webkit.org/show_bug.cgi?id=58458 Pass bidiRuns to constructLine and move reachedEndOfTextRenderer so that it is declared before constructLine. No new tests as this is refactoring only. * rendering/RenderBlock.h: * rendering/RenderBlockLineLayout.cpp: (WebCore::reachedEndOfTextRenderer): (WebCore::RenderBlock::constructLine): (WebCore::RenderBlock::layoutInlineChildren): 2011-04-13 Cary Clark Reviewed by Eric Seidel. Allow CG Font support in Chrome Darwin build using Skia https://bugs.webkit.org/show_bug.cgi?id=58321 This allows Chrome to use Skia to do WebKit rendering, while using CoreGraphics for glyph creation and computing font metrics. It relies on an undefined platform token, WTF_USE_SKIA_ON_MAC_CHROME. No new tests needed, no functionality change. * loader/cache/CachedFont.cpp: Make CGFontRef functions and CG-specific font code available to Chrome builds on Darwin using Skia. * platform/graphics/FontPlatformData.h: Ditto. (WebCore::FontPlatformData::hash): Ditto. * platform/graphics/GlyphBuffer.h: Ditto. (WebCore::GlyphBuffer::advanceAt): Ditto. (WebCore::GlyphBuffer::add): Ditto. (WebCore::GlyphBuffer::expandLastAdvance): Ditto. * platform/graphics/SimpleFontData.h: Ditto. 2011-04-13 Alexis Menard Reviewed by Dimitri Glazkov. The timeline of the video controls is unusable if the multimedia backend returns a infinite duration. https://bugs.webkit.org/show_bug.cgi?id=58452 In case the underlaying media element backend returns crazy values, e.g. an infinite duration for the video we need to bail out and hide the timeline rather than in a broken state where you can't use it. The previous code was just checking if the duration was NaN. We can't control from JS what the backend will return as a duration for the video so we can't make an test for it. * html/shadow/MediaControlRootElement.cpp: (WebCore::MediaControlRootElement::reset): 2011-04-13 Abhishek Arya Reviewed by James Robinson. Draw outline for render widgets. https://bugs.webkit.org/show_bug.cgi?id=57439 Test: fast/frames/iframe-outline.html * rendering/RenderWidget.cpp: (WebCore::RenderWidget::paint): 2011-04-13 Kent Tamura Reviewed by Dimitri Glazkov. Change the representation of ShadowRoot nodes in render tree dumps https://bugs.webkit.org/show_bug.cgi?id=58432 Show "#shadow-root" for ShadorRoot nodes instead of "#document-fragment" in DRT results. No new tests. This change doesn't affect existing tests yet. * dom/DocumentFragment.h: Make nodeName() protected in order that ShdowRoot can override it. * dom/ShadowRoot.cpp: (WebCore::ShadowRoot::nodeName): Returns "#shadow-root". * dom/ShadowRoot.h: Declare nodeName(). * rendering/RenderTreeAsText.cpp: (WebCore::nodePosition): Don't show "child N " if the node is a shadow boundary. We don't use isShadowRoot() here because the legacy shadow root nodes return true for isShadowRoot() and we don't want to update existing test results. 2011-04-13 Ryosuke Niwa Reviewed by Eric Seidel. Merge LineOffsets and LineWidth https://bugs.webkit.org/show_bug.cgi?id=58411 Merged lineOffsets into LineWidth. After this patch, available width is updated in positionNewFloatOnLine via updateAvailableWidth and shrinkAvailableWidthForNewFloatIfNeeded instead of findNextBreak. This is correct because - LineOffsets::update and LineOffsets::shrinkWidthForNewFloatIfNeeded were only called in positionNewFloatOnLine besides LineOffsets' constructor - positionNewFloatOnLine was only called in skipLeadingWhitespace and findNextLineBreak - findNextLineBreak updates the available width whenever it calls skipLeadingWhitespace or positionNewFloatOnLine * rendering/RenderBlock.h: * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::skipLeadingWhitespace): Takes LineWidth instead of LineOffset (WebCore::LineWidth::LineWidth): Takes RenderBlock* and boolean isFirstLine; call updateAvailableWidth because the initial available width was used to be computed from lineOffsets.width(). (WebCore::LineWidth::computeAvailableWidthFromLeftAndRight): Added. (WebCore::LineWidth::updateAvailableWidth): Renamed from LineOffsets::update; this function now updates m_availableWidth via computeAvailableWidthFromLeftAndRight as well as m_left and m_right. (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Renamed from LineOffsets::shrinkWidthForNewFloatIfNeeded. This function also calls computeAvailableWidthFromLeftAndRight. (WebCore::LineWidth::applyOverhang): No longer takes arguments since both arguments were member variables of LineOffsets. (WebCore::LineWidth::fitBelowFloats): No longer takes isFirstLine. (WebCore::RenderBlock::findNextLineBreak): Uses LineWidth. (WebCore::RenderBlock::positionNewFloatOnLine): Takes a reference to LineWidth. 2011-04-13 Ryuan Choi Reviewed by Kenneth Rohde Christiansen. [CMAKE] Separate DerivedSources. https://bugs.webkit.org/show_bug.cgi?id=58427 No new tests since these are refactoring only. * CMakeLists.txt: * UseJSC.cmake: 2011-04-13 Noel Gordon Reviewed by Kenneth Russell. [chromium] Fix canvas.toDataURL mimeType assertion https://bugs.webkit.org/show_bug.cgi?id=58425 Following r81213, reassert expected toDataURL() mimeType, remove an unused variable. No new tests. Covered by existing tests. * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageToDataURL): (WebCore::ImageBuffer::toDataURL): 2011-04-12 Luiz Agostini Reviewed by Andreas Kling. [Qt] QNetworkReplyHandler refactoring: remove nested event loop. https://bugs.webkit.org/show_bug.cgi?id=58375 As QNAM now makes actual synchronous loads there is no need for a nested event loop in ResourceHandleQt. Moving the call for QNetworkReplyWrapper::synchronousLoad from ResourceHandle::loadResourceSynchronously to QNetworkReplyHandler::start for the redirections to work in synchronous requests. * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyHandler::start): * platform/network/qt/QNetworkReplyHandler.h: * platform/network/qt/ResourceHandleQt.cpp: (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): (WebCore::WebCoreSynchronousLoader::didReceiveResponse): (WebCore::WebCoreSynchronousLoader::didReceiveData): (WebCore::WebCoreSynchronousLoader::didFinishLoading): (WebCore::WebCoreSynchronousLoader::didFail): (WebCore::ResourceHandle::loadResourceSynchronously): 2011-04-13 Roland Steiner Reviewed by David Hyatt. Bug 55930 - Incorrect handling of 'display:' property within nested tags https://bugs.webkit.org/show_bug.cgi?id=55930 Non-inline :before/:after generated content is now wrapped with an anonymous inline block. Also, added an additional check in RenderObjectChildList::updateBeforeAfterContent() to verify that the created render object is legal under the parent. Tests: fast/ruby/after-block-doesnt-crash.html fast/ruby/after-table-doesnt-crash.html fast/ruby/before-block-doesnt-crash.html fast/ruby/before-table-doesnt-crash.html * rendering/RenderObjectChildList.cpp: (WebCore::RenderObjectChildList::updateBeforeAfterContent): * rendering/RenderRuby.cpp: (WebCore::isAnonymousRubyInlineBlock): (WebCore::rubyBeforeBlock): (WebCore::rubyAfterBlock): (WebCore::createAnonymousRubyInlineBlock): (WebCore::lastRubyRun): (WebCore::RenderRubyAsInline::addChild): (WebCore::RenderRubyAsInline::removeChild): (WebCore::RenderRubyAsBlock::addChild): (WebCore::RenderRubyAsBlock::removeChild): * rendering/RenderRuby.h: 2011-04-13 Matthew Delaney Reviewed by Simon Fraser. [CG] Refactor get/putImageData routines from ImageBufferCG into a (new) ImageBufferDataCG.cpp https://bugs.webkit.org/show_bug.cgi?id=58084 No new tests. Does not affect outward behavior. * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * platform/graphics/ImageBuffer.h: * platform/graphics/ImageBufferData.h: Added. * platform/graphics/cairo/ImageBufferData.h: Removed. * platform/graphics/cairo/ImageBufferDataCairo.h: Added. * platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::getUnmultipliedImageData): (WebCore::ImageBuffer::getPremultipliedImageData): (WebCore::ImageBuffer::putUnmultipliedImageData): (WebCore::ImageBuffer::putPremultipliedImageData): * platform/graphics/cg/ImageBufferDataCG.cpp: Added. (WebCore::ImageBufferData::ImageBufferData): (WebCore::haveVImageRoundingErrorFix): (WebCore::ImageBufferData::getData): (WebCore::ImageBufferData::putData): * platform/graphics/cg/ImageBufferData.h: Removed. * platform/graphics/cg/ImageBufferDataCG.h: Added. * platform/graphics/chromium/ImageBufferData.h: Removed. * platform/graphics/chromium/ImageBufferDataSkia.h: Added. * platform/graphics/haiku/ImageBufferData.h: Removed. * platform/graphics/haiku/ImageBufferDataHaiku.h: Added. * platform/graphics/qt/ImageBufferData.h: Removed. * platform/graphics/qt/ImageBufferDataQt.h: Added. * platform/graphics/wince/ImageBufferData.h: Removed. * platform/graphics/wince/ImageBufferDataWince.h: Added. * platform/graphics/wx/ImageBufferData.h: Removed. * platform/graphics/wx/ImageBufferDataWx.h: Added. 2011-04-13 Simon Fraser Reviewed by Dan Bernstein. Remove std:: prefix on some min/max calls https://bugs.webkit.org/show_bug.cgi?id=58493 Remove std:: namespacing on min/max in favor of a 'using' clause. * platform/graphics/RoundedIntRect.cpp: (WebCore::RoundedIntRect::Radii::expand): * rendering/style/RenderStyle.cpp: (WebCore::calcConstraintScaleFor): 2011-04-13 Alexis Menard Reviewed by Andreas Kling. Replace our own RenderThemeQt::getMediaElementFromRenderObject by MediaControlsElement::toParentMediaElement used by every other port. * platform/qt/RenderThemeQt.cpp: (WebCore::RenderThemeQt::paintMediaFullscreenButton): (WebCore::RenderThemeQt::paintMediaMuteButton): (WebCore::RenderThemeQt::paintMediaPlayButton): (WebCore::RenderThemeQt::paintMediaSliderTrack): * platform/qt/RenderThemeQt.h: 2011-04-13 Geoffrey Garen Reviewed by Oliver Hunt. Switched DOM wrappers to use HashMap of Weak instead of WeakGCMap https://bugs.webkit.org/show_bug.cgi?id=58482 This will allow wrappers to make individual decisions about their lifetimes. * bindings/js/DOMWrapperWorld.cpp: (WebCore::DOMWrapperWorld::DOMWrapperWorld): (WebCore::JSNodeHandleOwner::isReachableFromOpaqueRoots): (WebCore::JSNodeHandleOwner::finalize): (WebCore::DOMObjectHandleOwner::isReachableFromOpaqueRoots): (WebCore::DOMObjectHandleOwner::finalize): * bindings/js/DOMWrapperWorld.h: (WebCore::JSNodeHandleOwner::JSNodeHandleOwner): (WebCore::DOMObjectHandleOwner::DOMObjectHandleOwner): (WebCore::DOMWrapperWorld::jsNodeHandleOwner): (WebCore::DOMWrapperWorld::domObjectHandleOwner): Added handle owners for JSNode and DOMObject, our two hash table values. For now, the owners just take care to remove their handles from their respective hash tables. Changed the hash table type to be a standard HashMap of weak pointers, instead of a WeakGCMap. * bindings/js/JSDOMBinding.cpp: (WebCore::getCachedDOMObjectWrapper): (WebCore::cacheDOMObjectWrapper): (WebCore::cacheDOMNodeWrapper): (WebCore::isObservableThroughDOM): (WebCore::markDOMNodesForDocument): (WebCore::takeWrappers): (WebCore::updateDOMNodeDocument): (WebCore::markDOMObjectWrapper): (WebCore::markDOMNodeWrapper): Updated wrapper hash table access to accomodate its new data type. * bindings/js/JSNodeCustom.h: (WebCore::getCachedDOMNodeWrapper): Ditto. * dom/Document.h: Updated declaration to match the above. 2011-04-13 Sam Weinig Fix Mac builds. * WebCore.exp.in: 2011-04-13 Sam Weinig Reviewed by Gavin Barraclough. WebKit2 doesn't keep overlay scrollers shown while scroll gesture held Notify the scrollbar painter controller when gesture scrolls begin and end. * WebCore.exp.in: * platform/mac/ScrollAnimatorMac.h: * platform/mac/ScrollAnimatorMac.mm: (WebCore::ScrollAnimatorMac::didBeginScrollGesture): (WebCore::ScrollAnimatorMac::didEndScrollGesture): (WebCore::ScrollAnimatorMac::beginScrollGesture): (WebCore::ScrollAnimatorMac::endScrollGesture): * platform/mac/WebCoreSystemInterface.h: * platform/mac/WebCoreSystemInterface.mm: 2011-04-13 Eric Carlson Reviewed by Maciej Stachowiak. MediaPlayerPrivateAVFoundationObjC should adopt [AVURLAsset isPlayableExtendedMIMEType:] https://bugs.webkit.org/show_bug.cgi?id=58451 No new tests, supported MIME types haven't changed. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType): Use [AVURLAsset isPlayableExtendedMIMEType] instead of just the list of types. 2011-04-13 Eric Carlson Reviewed by Alexey Proskuryakov. Media engine fallback doesn't always work https://bugs.webkit.org/show_bug.cgi?id=58462 No new tests, this was verified manually with the url noted in the bug. * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::networkStateChanged): 2011-04-13 Zhenyao Mo Reviewed by Kenneth Russell. Extension3D needs to provide a way to check if an extension is enabled https://bugs.webkit.org/show_bug.cgi?id=58410 * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::setupFlags): Use isEnabled() instead of supports(). * platform/graphics/Extensions3D.h: Add isEnabled(). * platform/graphics/chromium/Extensions3DChromium.h: Ditto. * platform/graphics/opengl/Extensions3DOpenGL.cpp: Ditto. (WebCore::Extensions3DOpenGL::isEnabled): * platform/graphics/opengl/Extensions3DOpenGL.h: Ditto. * platform/graphics/qt/Extensions3DQt.cpp: Ditto. (WebCore::Extensions3DQt::isEnabled): * platform/graphics/qt/Extensions3DQt.h: Ditto. 2011-04-13 Oliver Hunt Reviewed by Gavin Barraclough. Make PropertyMapEntry use a WriteBarrier for specificValue https://bugs.webkit.org/show_bug.cgi?id=58407 Pass JSGlobalData reference on to APIs that now need them * bindings/js/JSDOMWindowShell.h: (WebCore::JSDOMWindowShell::setWindow): * bindings/js/JSHTMLDocumentCustom.cpp: (WebCore::JSHTMLDocument::all): 2011-04-12 Pavel Podivilov Reviewed by Pavel Feldman. Web Inspector: fix source mapping for de-obfuscated scripts. https://bugs.webkit.org/show_bug.cgi?id=58231 * inspector/front-end/ScriptFormatterWorker.js: (buildMapping): * inspector/front-end/SourceFile.js: (WebInspector.SourceMapping): (WebInspector.SourceMapping.prototype.sourceLineToScriptLocation): (WebInspector.SourceMapping.prototype._sourceLocationToScriptLocation): (WebInspector): (WebInspector.FormattedSourceMapping): (WebInspector.FormattedSourceMapping.prototype.scriptLocationToSourceLine): (WebInspector.FormattedSourceMapping.prototype.sourceLineToScriptLocation): 2011-04-13 Mario Sanchez Prada Reviewed by Martin Robinson. [GTK] Consider editable and non editable nodes when calculating selection offsets https://bugs.webkit.org/show_bug.cgi?id=58431 Use firstPositionInOrBeforeNode() and lastPositionInOrAfterNode(). This is needed to ensure that getSelectionOffsetsForObject() works well when non editable nodes are present in the selection, since firstPositionInNode() and lastPositionInNode() don't work in those cases (they assume the node is editable). * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (getSelectionOffsetsForObject): Updated calls. 2011-04-13 Mario Sanchez Prada Reviewed by Martin Robinson. [GTK] Missing nullchecks in GTK's a11y wrapper https://bugs.webkit.org/show_bug.cgi?id=58429 Add missing nullchecks for coreObject->document(). * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (atkParentOfRootObject): Add missing nullcheck. (getPangoLayoutForAtk): Ditto. (webkit_accessible_text_get_caret_offset): Ditto. (textExtents): Ditto. (webkit_accessible_editable_text_insert_text): Ditto. (webkit_accessible_editable_text_delete_text): Ditto. 2011-04-13 Thierry Reding Gtk+ port fails to build when enabling WebGL https://bugs.webkit.org/show_bug.cgi?id=58434 Fix the GTK+ WebGL build after the introduction of PlatformContextCairo. * platform/graphics/GraphicsContext3D.h: * platform/graphics/cairo/GraphicsContext3DCairo.cpp: (WebCore::GraphicsContext3D::paintToCanvas): 2011-04-12 Philippe Normand Reviewed by Martin Robinson. REGRESSION(r83561): doesn't pause in-window playback during fullscreen playback https://bugs.webkit.org/show_bug.cgi?id=58312 Make sure to link the videoValve in all cases, fpsdisplaysink being used or not. No new test, this patch fixes an internal feature of the player, not publicly exposed. Having two video sinks and pausing one while the other displays the fullscreen video is an implementation detail of the GStreamer player. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): 2011-04-13 Ilya Tikhonovsky Reviewed by Yury Semikhatsky. Web Inspector: there is a problem if an optional param is not at the end of a params list. https://bugs.webkit.org/show_bug.cgi?id=58440 In InspectorBackend.dispatch method we are converting the message's params object into array of arguments for a callback. But in some cases the optional parameter is declared in the middle of the params list. That gets us into a problem if this param has been skipped in the message. In that case the tail of the event params will be shifted. We can slightly modify dispatcher and it will put the params in right places. * inspector/CodeGeneratorInspector.pm: 2011-04-13 Ben Taylor Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=57337 Work around a bug in ternary opertions in the Solaris Studio 12/12.1/12.2 compilers, using an if clause. * dom/NodeRenderStyle.h: (WebCore::Node::renderStyle): 2011-04-13 Brian Salomon Reviewed by Kenneth Russell. Use new skia API for wrapping DrawingBuffer's FBO/Tex IDs in skia object https://bugs.webkit.org/show_bug.cgi?id=58363 No new tests needed, exercised by all existing canvas2d tests. * platform/graphics/chromium/DrawingBufferChromium.cpp: (WebCore::DrawingBuffer::getGrPlatformSurfaceDesc): * platform/graphics/gpu/DrawingBuffer.h: * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::setSharedGraphicsContext3D): 2011-04-13 Andrey Kosyakov Unreviewed. Fix chromium clang build problem: ApplyPropertyExpandingSuppressValue::applyValue() shadows a virtual method with a different signature in base class instead of overriding it. * css/CSSStyleApplyProperty.cpp: (WebCore::ApplyPropertyExpandingSuppressValue::applyValue): 2011-04-13 Kinuko Yasuda Reviewed by David Levin. Add mock implementation and plumbing code for unified Quota API https://bugs.webkit.org/show_bug.cgi?id=57927 Added mock implementation and some plumbing code for the quota API, that is based on the discussion on public-webapps: http://lists.w3.org/Archives/Public/public-webapps/2011JanMar/0346.html No new tests: tests will be added when we expose the API. * CMakeLists.txt: Added new file entries. * DerivedSources.cpp: Added new file entries. * DerivedSources.make: Added new file entries. * GNUmakefile.am: Added new file entries. * WebCore.gypi: Added new file entries. * WebCore.pro: Added new file entries. * WebCore.vcproj/WebCore.vcproj: Added new file entries. * WebCore.xcodeproj/project.pbxproj: Added new file entries. * storage/StorageInfo.cpp: Added. * storage/StorageInfo.h: Added. * storage/StorageInfoErrorCallback.h: Added. * storage/StorageInfoQuotaCallback.h: Added. * storage/StorageInfoUsageCallback.h: Added. 2011-04-13 Gustavo Noronha Silva Reviewed by Martin Robinson. [GTK] PluginPackage should check whether a plugin mixes GTK+ 2 and 3 symbols itself https://bugs.webkit.org/show_bug.cgi?id=58297 Make sure we do not load plugins that use symbols of a different GTK+ major version to avoid bugs and crashes. * plugins/gtk/PluginPackageGtk.cpp: (WebCore::moduleMixesGtkSymbols): (WebCore::PluginPackage::load): 2011-04-13 Andrey Adaikin Reviewed by Pavel Feldman. Web Inspector: Implement undo/redo in text editor https://bugs.webkit.org/show_bug.cgi?id=58426 Native undo/redo does not work because we modify DOM structure (highlights, chunks and etc.) Implement it via keyboard shortcuts for now (Cmd/Ctrl+Z and Cmd/Ctrl+Shift+Z). FIXME: Do something with the popup's Undo and Redo menu options - they invoke native's undo/redo. * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype.endEditing): * inspector/front-end/TextEditorModel.js: (WebInspector.TextEditorModel.prototype.setText): (WebInspector.TextEditorModel.prototype._innerSetText): (WebInspector.TextEditorModel.prototype._pushUndoableCommand): (WebInspector.TextEditorModel.prototype.undo): (WebInspector.TextEditorModel.prototype.redo): (WebInspector.TextEditorModel.prototype._doUndo): * inspector/front-end/TextViewer.js: (WebInspector.TextViewer.prototype._textChanged): (WebInspector.TextViewer.prototype._enterInternalTextChangeMode): (WebInspector.TextViewer.prototype._exitInternalTextChangeMode): (WebInspector.TextViewer.prototype._registerShortcuts): (WebInspector.TextViewer.prototype._cancelEditing): (WebInspector.TextViewer.prototype._handleUndoRedo): (WebInspector.TextEditorChunkedPanel.prototype.makeLineAChunk): (WebInspector.TextEditorChunkedPanel.prototype._repaintAll): (WebInspector.TextEditorGutterPanel.prototype.textChanged): (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo.callback): (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo): (WebInspector.TextEditorMainPanel.prototype._restoreSelection): (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates): (WebInspector.TextEditorMainPanel.prototype.textChanged): (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges): 2011-04-13 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: make optional event parameter last to prevent regressions. https://bugs.webkit.org/show_bug.cgi?id=58433 * inspector/Inspector.json: * inspector/InspectorResourceAgent.cpp: (WebCore::InspectorResourceAgent::willSendRequest): * inspector/front-end/NetworkManager.js: (WebInspector.NetworkDispatcher.prototype.requestWillBeSent): 2011-04-13 Pavel Feldman Not reviewed: revert Inspector.json change for breaking world. * inspector/Inspector.json: 2011-04-13 Pavel Feldman Not reviewed: swap methods in the Inspector.json. * inspector/Inspector.json: 2011-04-13 Csaba Osztrogonác Unreviewed, rolling out r83695. http://trac.webkit.org/changeset/83695 https://bugs.webkit.org/show_bug.cgi?id=58375 [Qt][WK2]It broke http tests * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyHandler::start): (WebCore::QNetworkReplyHandler::synchronousLoad): * platform/network/qt/QNetworkReplyHandler.h: * platform/network/qt/ResourceHandleQt.cpp: (WebCore::WebCoreSynchronousLoader::resourceResponse): (WebCore::WebCoreSynchronousLoader::resourceError): (WebCore::WebCoreSynchronousLoader::data): (WebCore::WebCoreSynchronousLoader::setReplyFinished): (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): (WebCore::WebCoreSynchronousLoader::didReceiveResponse): (WebCore::WebCoreSynchronousLoader::didReceiveData): (WebCore::WebCoreSynchronousLoader::didFinishLoading): (WebCore::WebCoreSynchronousLoader::didFail): (WebCore::WebCoreSynchronousLoader::waitForCompletion): (WebCore::ResourceHandle::loadResourceSynchronously): 2011-04-13 Pavel Podivilov Reviewed by Pavel Feldman. Web Inspector: inactive style sheets should be read only. https://bugs.webkit.org/show_bug.cgi?id=58423 * inspector/front-end/ResourceView.js: (WebInspector.CSSSourceFrame): (WebInspector.CSSSourceFrame.prototype.isContentEditable): (WebInspector.CSSSourceFrame.prototype._loadStyleSheet.didGetAllStyleSheets.didCreateForId): (WebInspector.CSSSourceFrame.prototype._loadStyleSheet): 2011-04-13 Mikhail Naganov Reviewed by Pavel Feldman. Web Inspector: [Chromium] Prepare to move detailed heap snapshots storage and processing into workers. https://bugs.webkit.org/show_bug.cgi?id=58320 Introduce a proxy object that emulates worker behavior and change UI code to cope with it. * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/front-end/DetailedHeapshotGridNodes.js: (WebInspector.HeapSnapshotGridNode.prototype._populate.doPopulate.sorted): (WebInspector.HeapSnapshotGridNode.prototype._populate.doPopulate): (WebInspector.HeapSnapshotGridNode.prototype._populate): (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.childrenRetrieved.notify): (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.childrenRetrieved): (WebInspector.HeapSnapshotGridNode.prototype.populateChildren): (WebInspector.HeapSnapshotGridNode.prototype.sort.doSort.afterSort.afterPopulate): (WebInspector.HeapSnapshotGridNode.prototype.sort.doSort.afterSort): (WebInspector.HeapSnapshotGridNode.prototype.sort): (WebInspector.HeapSnapshotGenericObjectNode): (WebInspector.HeapSnapshotGenericObjectNode.prototype.get _shallowSizePercent): (WebInspector.HeapSnapshotGenericObjectNode.prototype._updateHasChildren): (WebInspector.HeapSnapshotObjectNode): (WebInspector.HeapSnapshotObjectNode.prototype._createChildNode): (WebInspector.HeapSnapshotObjectNode.prototype._createProvider): (WebInspector.HeapSnapshotInstanceNode): (WebInspector.HeapSnapshotInstanceNode.prototype._createChildNode): (WebInspector.HeapSnapshotInstanceNode.prototype._createProvider): (WebInspector.HeapSnapshotConstructorNode.prototype._createChildNode): (WebInspector.HeapSnapshotConstructorNode.prototype._createNodesProvider): (WebInspector.HeapSnapshotIteratorsTuple.prototype.sortAndRewind): (WebInspector.HeapSnapshotDiffNode.prototype._calculateDiff): (WebInspector.HeapSnapshotDiffNode.prototype._createChildNode): (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider.createProvider): (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider): (WebInspector.HeapSnapshotDiffNode.prototype._childHashForEntity): (WebInspector.HeapSnapshotDiffNode.prototype._childHashForNode): (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren.firstProviderPopulated): (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren.else.firstProviderPopulated): (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren): (WebInspector.HeapSnapshotDominatorObjectNode): (WebInspector.HeapSnapshotDominatorObjectNode.prototype._createChildNode): (WebInspector.HeapSnapshotDominatorObjectNode.prototype._createProvider): * inspector/front-end/DetailedHeapshotView.js: (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged): (WebInspector.HeapSnapshotSortableDataGrid.prototype._performSorting): (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.setDataSource): (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren): (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource.baseSnapshotNodeIdsReceived): (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource.pushBaseSnapshotNodeIds): (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource.snapshotNodeIdsReceived): (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren): (WebInspector.HeapSnapshotRetainingPathsList): (WebInspector.HeapSnapshotRetainingPathsList.prototype._resetPaths): (WebInspector.HeapSnapshotRetainingPathsList.prototype.setDataSource): (WebInspector.HeapSnapshotRetainingPathsList.prototype.refresh): (WebInspector.HeapSnapshotRetainingPathsList.prototype.showNext.pathFound): (WebInspector.HeapSnapshotRetainingPathsList.prototype.showNext.startSearching): (WebInspector.HeapSnapshotRetainingPathsList.prototype.showNext): (WebInspector.DetailedHeapshotView.profileCallback): (WebInspector.DetailedHeapshotView): (WebInspector.DetailedHeapshotView.prototype.get profileWrapper): (WebInspector.DetailedHeapshotView.prototype.get baseProfileWrapper): (WebInspector.DetailedHeapshotView.prototype.show.profileCallback1): (WebInspector.DetailedHeapshotView.prototype.show.profileCallback2): (WebInspector.DetailedHeapshotView.prototype.show): (WebInspector.DetailedHeapshotView.prototype._changeBase.baseProfileLoaded): * inspector/front-end/HeapSnapshot.js: * inspector/front-end/HeapSnapshotProxy.js: Added. * inspector/front-end/PleaseWaitMessage.js: * inspector/front-end/ProfilesPanel.js: (WebInspector.ProfilesPanel.prototype._reset): (WebInspector.ProfilesPanel.prototype.loadHeapSnapshot): (WebInspector.ProfilesPanel.prototype._addHeapSnapshotChunk): (WebInspector.ProfilesPanel.prototype._finishHeapSnapshot.doParse): (WebInspector.ProfilesPanel.prototype._finishHeapSnapshot.else.parsed): (WebInspector.ProfilesPanel.prototype._finishHeapSnapshot): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: 2011-04-13 Alexander Pavlov Reviewed by Pavel Feldman. Web Inspector: Web Page Performance auditing fails https://bugs.webkit.org/show_bug.cgi?id=58322 * inspector/front-end/AuditRules.js: (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback): (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback.documentLoaded): (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun): (WebInspector.AuditRules.CssInHeadRule.prototype.doRun.externalStylesheetsReceived): (WebInspector.AuditRules.CssInHeadRule.prototype.doRun.inlineStylesReceived): (WebInspector.AuditRules.CssInHeadRule.prototype.doRun.onDocumentAvailable): (WebInspector.AuditRules.CssInHeadRule.prototype.doRun): (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun.cssBeforeInlineReceived): (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun.lateStylesReceived): (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun.onDocumentAvailable): (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun): 2011-04-13 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: enumerate properties in Inspector.json using array, not object keys. https://bugs.webkit.org/show_bug.cgi?id=58418 * inspector/Inspector.json: 2011-04-06 Pavel Podivilov Reviewed by Pavel Feldman. Web Inspector: add "De-obfuscate Source" item to source frame text area context menu. https://bugs.webkit.org/show_bug.cgi?id=57942 * English.lproj/localizedStrings.js: * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel.prototype.formatSourceFilesToggled): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel): (WebInspector.ScriptsPanel.prototype._togglePauseOnExceptions): (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.releaseEvaluationResult): (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.toggleFormatSourceFiles): (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.formatSourceFilesToggled): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype._contextMenu): (WebInspector.SourceFrame.prototype._populateLineGutterContextMenu): (WebInspector.SourceFrame.prototype._populateTextAreaContextMenu): (WebInspector.SourceFrameDelegate.prototype.releaseEvaluationResult): (WebInspector.SourceFrameDelegate.prototype.toggleFormatSourceFiles): (WebInspector.SourceFrameDelegate.prototype.formatSourceFilesToggled): 2011-04-13 Nikolas Zimmermann Reviewed by Dirk Schulze. SVGTextContentElements textLength returns 0 https://bugs.webkit.org/show_bug.cgi?id=52543 Add proper handling of the SVGTextContentElement textLength property, according to SVG 1.1 2nd edition. If the textLength attributes is not explicitely set "textContentElement.textLength.baseVal" will return the same as "textContentElement.getComputedTextLength()". If it's set the values aren't equal anymore. getComputedTextLength() ignores the textLength attributes as well as the lengthAdjust attribute. Adapt all of SVGTextQuery to ignore the lengthAdjust/textLength attributes. This is how Opera implements it, and it makes sense to a certain degree, as otherwhise getComputedTextLength() and textLength.baseVal.value would always be the same. Nor does the spec mention that textLength is honored in the SVG Text DOM API. Fixes svg/custom/text-dom-01-f.svg (from SVG 1.1 2nd edition, should be moved into the new W3C-SVG-1.1-SE directory). Fixes svg/W3C-SVG-1.1-SE/svgdom-over-01-f.svg (last subtest related to textLength now passes). Added new svg/dynamic-updates testcases covering dynamic changes of lengthAdjust/textLength and the synchronization with getComputedTextLength(). Tests: svg/W3C-SVG-1.1-SE/svgdom-over-01-f.svg svg/dynamic-updates/SVGTextElement-dom-lengthAdjust-attr.html svg/dynamic-updates/SVGTextElement-dom-textLength-attr.html svg/dynamic-updates/SVGTextElement-svgdom-lengthAdjust-prop.html svg/dynamic-updates/SVGTextElement-svgdom-textLength-prop.html * rendering/svg/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::positionForPoint): * rendering/svg/SVGInlineFlowBox.cpp: (WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer): * rendering/svg/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::offsetForPositionInFragment): (WebCore::SVGInlineTextBox::selectionRect): (WebCore::SVGInlineTextBox::paintSelectionBackground): (WebCore::SVGInlineTextBox::paint): (WebCore::SVGInlineTextBox::calculateBoundaries): * rendering/svg/SVGTextChunkBuilder.cpp: (WebCore::SVGTextChunkBuilder::buildTextChunks): (WebCore::SVGTextChunkBuilder::layoutTextChunks): (WebCore::SVGTextChunkBuilder::addTextChunk): (WebCore::SVGTextChunkBuilder::processTextChunk): (WebCore::SVGTextChunkBuilder::processTextLengthSpacingCorrection): (WebCore::SVGTextChunkBuilder::processTextAnchorCorrection): * rendering/svg/SVGTextFragment.h: (WebCore::SVGTextFragment::SVGTextFragment): (WebCore::SVGTextFragment::buildFragmentTransform): (WebCore::SVGTextFragment::transformAroundOrigin): (WebCore::SVGTextFragment::buildTransformForTextOnPath): (WebCore::SVGTextFragment::buildTransformForTextOnLine): * rendering/svg/SVGTextLayoutEngine.cpp: (WebCore::SVGTextLayoutEngine::parentDefinesTextLength): (WebCore::SVGTextLayoutEngine::beginTextPathLayout): (WebCore::dumpTextBoxes): (WebCore::SVGTextLayoutEngine::finalizeTransformMatrices): (WebCore::SVGTextLayoutEngine::finishLayout): (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath): * rendering/svg/SVGTextQuery.cpp: (WebCore::SVGTextQuery::textLengthCallback): (WebCore::SVGTextQuery::subStringLengthCallback): (WebCore::SVGTextQuery::startPositionOfCharacterCallback): (WebCore::SVGTextQuery::endPositionOfCharacterCallback): (WebCore::SVGTextQuery::rotationOfCharacterCallback): (WebCore::calculateGlyphBoundaries): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::SVGTextContentElement): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::textLengthAnimated): (WebCore::SVGTextContentElement::parseMappedAttribute): (WebCore::SVGTextContentElement::svgAttributeChanged): * svg/SVGTextContentElement.h: (WebCore::SVGTextContentElement::specifiedTextLength): * svg/SVGTextPathElement.cpp: (WebCore::SVGTextPathElement::svgAttributeChanged): * svg/SVGTextPositioningElement.cpp: (WebCore::SVGTextPositioningElement::svgAttributeChanged): 2011-04-13 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: requestDocument can result in race condition in DOMAgent.js https://bugs.webkit.org/show_bug.cgi?id=58415 * inspector/front-end/DOMAgent.js: (WebInspector.DOMAgent.prototype.requestDocument.onDocumentAvailable): (WebInspector.DOMAgent.prototype.requestDocument): 2011-04-12 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: another pass of protocol renames. https://bugs.webkit.org/show_bug.cgi?id=58340 * inspector/Inspector.json: * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::getDocument): (WebCore::InspectorDOMAgent::performSearch): (WebCore::InspectorDOMAgent::setSearchingForNode): * inspector/InspectorDOMAgent.h: * inspector/InspectorDebuggerAgent.cpp: (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame): * inspector/InspectorDebuggerAgent.h: * inspector/InspectorRuntimeAgent.cpp: (WebCore::InspectorRuntimeAgent::evaluate): * inspector/InspectorRuntimeAgent.h: * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel.prototype._setSearchingForNode): (WebInspector.ElementsPanel.prototype.setSearchingForNode): 2011-04-12 Luke Macpherson Reviewed by Dimitri Glazkov. Implement remaining Background and Mask css properties in CSSStyleApplyProperty https://bugs.webkit.org/show_bug.cgi?id=58390 No new tests required as no functionality changed. * css/CSSStyleApplyProperty.cpp: (WebCore::ApplyPropertyExpanding): Class to expand one property to 0-4 properties. (WebCore::ApplyPropertyExpandingSuppressValue): Expand properties but suppress applyValue. (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): (WebCore::CSSStyleSelector::applyProperty): Remove implementations that have been moved to CSSStyleApplyProperty. 2011-04-12 Sergey Glazunov Reviewed by Dimitri Glazkov. Element::setAttribute should check the namespace of an id attribute https://bugs.webkit.org/show_bug.cgi?id=58359 Test: fast/dom/id-attribute-with-namespace-crash.html * dom/Element.cpp: (WebCore::Element::setAttribute): 2011-04-12 Mike Lawther Reviewed by James Robinson. Update boolean operators in RenderStyle to be compatible with check-webkit-style https://bugs.webkit.org/show_bug.cgi?id=58409 No new functionality, so no new tests. * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::operator==): (WebCore::RenderStyle::inheritedNotEqual): (WebCore::positionedObjectMoved): (WebCore::RenderStyle::diff): (WebCore::RenderStyle::applyTransform): * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::isOriginalDisplayInlineType): 2011-04-12 Luiz Agostini Reviewed by Andreas Kling. [Qt] QNetworkReplyHandler refactoring: remove nested event loop. https://bugs.webkit.org/show_bug.cgi?id=58375 As QNAM now makes actual synchronous loads there is no need for a nested event loop in ResourceHandleQt. Moving the call for QNetworkReplyWrapper::synchronousLoad from ResourceHandle::loadResourceSynchronously to QNetworkReplyHandler::start for the redirections to work in synchronous requests. * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyHandler::start): * platform/network/qt/QNetworkReplyHandler.h: * platform/network/qt/ResourceHandleQt.cpp: (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): (WebCore::WebCoreSynchronousLoader::didReceiveResponse): (WebCore::WebCoreSynchronousLoader::didReceiveData): (WebCore::WebCoreSynchronousLoader::didFinishLoading): (WebCore::WebCoreSynchronousLoader::didFail): (WebCore::ResourceHandle::loadResourceSynchronously): 2011-04-12 Vangelis Kokkevis Reviewed by James Robinson. [chromium] Move the calculation of the layer's z coordinate to the right spot so that it can be picked up by its sublayers. https://bugs.webkit.org/show_bug.cgi?id=58397 Test: platform/chromium/compositing/child-layer-3d-sorting.html * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::updatePropertiesAndRenderSurfaces): 2011-04-12 Luiz Agostini Reviewed by Andreas Kling. [Qt] QNetworkReplyHandler refactoring: signal queue https://bugs.webkit.org/show_bug.cgi?id=57075 The idea is to make all signals that come from the QNetworkReply to pass through a queue and to stop that queue when loading is deferred. This way almost all the deferred logic can be removed from QNetworkReplyHandler class and encapsulated in its own class. To stop the queue during wrapper methods execution avoids stacking handler methods over wrapper methods. Because of this there is no chance for the wrapper to be destroyed inside one of its methods. This together with empting the queue at wrapper destruction time makes sure that the handler will not receive calls from a dead wrapper. The new class is named QNetworkReplyHandlerCallQueue. * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyHandlerCallQueue::QNetworkReplyHandlerCallQueue): (WebCore::QNetworkReplyHandlerCallQueue::push): (WebCore::QNetworkReplyHandlerCallQueue::lock): (WebCore::QNetworkReplyHandlerCallQueue::unlock): (WebCore::QNetworkReplyHandlerCallQueue::setDeferSignals): (WebCore::QNetworkReplyHandlerCallQueue::flush): (WebCore::QueueLocker::QueueLocker): (WebCore::QueueLocker::~QueueLocker): (WebCore::QNetworkReplyWrapper::QNetworkReplyWrapper): (WebCore::QNetworkReplyWrapper::~QNetworkReplyWrapper): (WebCore::QNetworkReplyWrapper::receiveMetaData): (WebCore::QNetworkReplyWrapper::readyRead): (WebCore::QNetworkReplyWrapper::didReceiveFinished): (WebCore::QNetworkReplyHandler::QNetworkReplyHandler): (WebCore::QNetworkReplyHandler::resetState): (WebCore::QNetworkReplyHandler::release): (WebCore::QNetworkReplyHandler::finish): (WebCore::QNetworkReplyHandler::sendResponseIfNeeded): (WebCore::QNetworkReplyHandler::forwardData): (WebCore::QNetworkReplyHandler::start): (WebCore::QNetworkReplyHandler::synchronousLoad): * platform/network/qt/QNetworkReplyHandler.h: (WebCore::QNetworkReplyHandlerCallQueue::deferSignals): (WebCore::QNetworkReplyHandlerCallQueue::clear): (WebCore::QNetworkReplyWrapper::synchronousLoad): (WebCore::QNetworkReplyHandler::setLoadingDeferred): * platform/network/qt/ResourceHandleQt.cpp: (WebCore::ResourceHandle::loadResourceSynchronously): 2011-04-12 Kenichi Ishibashi Reviewed by Kent Tamura. Fix wrong calculation of HTMLFormElement::m_associatedElementsAfterIndex. https://bugs.webkit.org/show_bug.cgi?id=58247 - Increment m_associatedElementsAfterIndex when the form owner and an inserted form associated element have the same parent chain. - Always iterate over m_associatedElements to decrease indexes when a form associated element is removed. This is needed for a case that the form associated element is removed from the form element due to deleting the 'form' attribute. No behavioral change expected with this change. Tests: fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1.html fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail2.html * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formElementIndexWithFormAttribute): Incremet m_associatedElementsAfterIndex when compareDocumentPosition() returns DOCUMENT_POSITION_CONTAINED_BY. (WebCore::HTMLFormElement::removeFormElement): Always iterate m_associatedElements to adjust indexes. 2011-04-12 Diego Gonzalez Reviewed by Kenneth Rohde Christiansen. [Qt] Do not show scrollbars when use mobile theme https://bugs.webkit.org/show_bug.cgi?id=58380 * platform/qt/ScrollbarThemeQt.cpp: (WebCore::ScrollbarThemeQt::scrollbarThickness): 2011-04-12 Anantanarayanan G Iyengar Reviewed by Alexey Proskuryakov. The default backspace event handler should mark the event as handled if navigation succeeds. https://bugs.webkit.org/show_bug.cgi?id=58379 We should mark the event as handled only if we were able to successfully navigate backwards or forwards. These navigations can fail if there is now back/forward history. This can occur in cases like ChromeFrame where history is managed by an external browser like IE. No new tests added as this scenario can occur when the history view is split across two browsers (WebKit and IE) It is non trivial to simulate this environment. * page/EventHandler.cpp: (WebCore::EventHandler::defaultBackspaceEventHandler): 2011-04-12 Ryosuke Niwa Reviewed by Eric Seidel. Make availableWidth and totalOverhangWidth in findNextLineBreak member variables of LineWidth https://bugs.webkit.org/show_bug.cgi?id=58400 Added m_availableWidth and m_overhangWidth to LineWidth this allows us to encapsulate m_overhangWidth. * rendering/RenderBlock.h: * rendering/RenderBlockLineLayout.cpp: (WebCore::LineWidth::LineWidth): (WebCore::LineWidth::fitsOnLine): Added; returns true if current width + first argument <= availableWidth. (WebCore::LineWidth::availableWidth): Added. (WebCore::LineWidth::setAvailableWidth): Added; takes LineOffsets. (WebCore::LineWidth::applyOverhang): Added; obtains the overhang width from ruby run and inflates the available width. (WebCore::LineWidth::fitBelowFloats): Moved from RenderBlock. (WebCore::RenderBlock::findNextLineBreak): Uses LineWidth. 2011-04-12 Alexis Menard Unreviewed warning fix. MediaControlElements has been moved to html/shadow. * WebCore.pro: 2011-04-12 Yael Aharon Reviewed by Eric Seidel. Rename onEndChain and make it a static method. https://bugs.webkit.org/show_bug.cgi?id=58403 No new tests since this is refactoring only. * rendering/InlineFlowBox.cpp: (WebCore::isLastChildForRenderer): (WebCore::InlineFlowBox::determineSpacingForFlowBoxes): * rendering/InlineFlowBox.h: 2011-04-12 Eric Carlson Not reviewed, build fix. Fix non-accelerated build after r83667. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerFirstVideoFrameAvailable): Guard call to mediaPlayerRenderingModeChanged with USE(ACCELERATED_COMPOSITING. 2011-04-12 Adrienne Walker Reviewed by James Robinson. [chromium] TilingData mishandles very small texture sizes https://bugs.webkit.org/show_bug.cgi?id=58364 Use zero tiles when the texture size is too small for tiling. * platform/graphics/gpu/TilingData.cpp: (WebCore::TilingData::TilingData): (WebCore::TilingData::setMaxTextureSize): 2011-04-12 Csaba Osztrogonác Unreviewed, rolling out r83634 and r83659. http://trac.webkit.org/changeset/83634 http://trac.webkit.org/changeset/83659 https://bugs.webkit.org/show_bug.cgi?id=57075 It made 2 tests time out * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyWrapper::QNetworkReplyWrapper): (WebCore::QNetworkReplyWrapper::~QNetworkReplyWrapper): (WebCore::QNetworkReplyWrapper::receiveMetaData): (WebCore::QNetworkReplyWrapper::didReceiveFinished): (WebCore::QNetworkReplyHandler::QNetworkReplyHandler): (WebCore::QNetworkReplyHandler::resetState): (WebCore::QNetworkReplyHandler::setLoadingDeferred): (WebCore::QNetworkReplyHandler::resumeDeferredLoad): (WebCore::QNetworkReplyHandler::release): (WebCore::QNetworkReplyHandler::finish): (WebCore::QNetworkReplyHandler::sendResponseIfNeeded): (WebCore::QNetworkReplyHandler::forwardData): (WebCore::QNetworkReplyHandler::start): * platform/network/qt/QNetworkReplyHandler.h: * platform/network/qt/ResourceHandleQt.cpp: (WebCore::WebCoreSynchronousLoader::resourceResponse): (WebCore::WebCoreSynchronousLoader::resourceError): (WebCore::WebCoreSynchronousLoader::data): (WebCore::WebCoreSynchronousLoader::setReplyFinished): (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): (WebCore::WebCoreSynchronousLoader::didReceiveResponse): (WebCore::WebCoreSynchronousLoader::didReceiveData): (WebCore::WebCoreSynchronousLoader::didFinishLoading): (WebCore::WebCoreSynchronousLoader::didFail): (WebCore::WebCoreSynchronousLoader::waitForCompletion): (WebCore::ResourceHandle::loadResourceSynchronously): 2011-04-12 Sam Weinig Reviewed by Simon Fraser. Frames prevent scrolling containing page https://bugs.webkit.org/show_bug.cgi?id=58392 Also fixes: Should rubber-band on pages with no scrollbars * page/FrameView.cpp: (WebCore::FrameView::FrameView): Make the main frame rubber-band horizontally and vertically always. * platform/ScrollTypes.h: Add ScrollElasticity enum. * platform/ScrollableArea.cpp: Default to no elasticity. (WebCore::ScrollableArea::ScrollableArea): * platform/ScrollableArea.h: (WebCore::ScrollableArea::setVerticalScrollElasticity): (WebCore::ScrollableArea::verticalScrollElasticity): (WebCore::ScrollableArea::setHorizontalScrollElasticity): (WebCore::ScrollableArea::horizontalScrollElasticity): Add state for horizontal and vertical elasticity. * platform/mac/ScrollAnimatorMac.mm: (WebCore::ScrollAnimatorMac::handleWheelEvent): Bail out of new scrolling behavior if we can't rubber-band. By bailing before accepting the wheel event, we allow the wheel event to be forwarded. We will need to refine this logic to allow subframe scrolling in the future. (WebCore::ScrollAnimatorMac::allowsVerticalStretching): (WebCore::ScrollAnimatorMac::allowsHorizontalStretching): Switch stretching behavior based on the ScrollableArea's elasticity. 2011-04-12 Geoffrey Garen Not reviewed. Try to fix the Chromium build. Why have one URL when you can have two at twice the price? * platform/KURL.h: (WebCore::KURL::KURL): (WebCore::KURL::isHashTableDeletedValue): * platform/KURLGoogle.cpp: (WebCore::KURLGooglePrivate::KURLGooglePrivate): * platform/KURLGooglePrivate.h: Added a GoogleURL path for KURL's hash table deleted value constructor. 2011-04-12 Stephanie Lewis Reviewed by Oliver Hunt. https://bugs.webkit.org/show_bug.cgi?id=58280 Fix a layout test by correctly comparing enums, and not adding exceptions. * bindings/js/SerializedScriptValue.cpp: (WebCore::SerializedScriptValue::create): (WebCore::SerializedScriptValue::deserialize): * bindings/js/SerializedScriptValue.h: 2011-04-12 Eric Carlson Reviewed by Simon Fraser. Apple movie trailers play only audio https://bugs.webkit.org/show_bug.cgi?id=58339 No new tests, covered by existing layout and manual tests. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerEngineUpdated): Do the logging before calling any functions. (WebCore::HTMLMediaElement::mediaPlayerFirstVideoFrameAvailable): New, if still displaying the poster change the display mode to Video and force a style recalc so the video layer gets hooked up the the render tree. * html/HTMLMediaElement.h: Define new display mode, PosterWaitingForVideo, to signal that we want to stop displaying the poster as soon as the first frame of video is available. * html/HTMLVideoElement.cpp: (WebCore::HTMLVideoElement::setDisplayMode): Change display mode to PosterWaitingForVideo when we want to display Video but the media engines doesn't have the first frame yet. * html/HTMLVideoElement.h: (WebCore::HTMLVideoElement::shouldDisplayPosterImage): Update to return true when display mode is PosterWaitingForVideo. * manual-tests/media-elements/video-replaces-poster.html: Clean up bit-rot from patch changes. * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::firstVideoFrameAvailable): New, passthrough from media engien to element. * platform/graphics/MediaPlayer.h: (WebCore::MediaPlayerClient::mediaPlayerFirstVideoFrameAvailable): * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation): Initialize m_haveReportedFirstVideoFrame and m_playWhenFramesAvailable. (WebCore::MediaPlayerPrivateAVFoundation::play): Don't actually start playback until the first frame of video has loaded, or audio will begin to play before we can show video. (WebCore::MediaPlayerPrivateAVFoundation::pause): Clear m_playWhenFramesAvailable. (WebCore::MediaPlayerPrivateAVFoundation::updateStates): When first frame of video is available, inform elment and begin playback if it was previousl requested. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyContextVideoRenderer): Correct logging. (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Ditto. (WebCore::MediaPlayerPrivateAVFoundationObjC::platformPlay): Renamed from play. (WebCore::MediaPlayerPrivateAVFoundationObjC::platformPause): Rename from pause. 2011-04-12 Jian Li Unreviewed, rolling out r83649. http://trac.webkit.org/changeset/83649 https://bugs.webkit.org/show_bug.cgi?id=57563 This patch causes compiling errors for chromium * platform/graphics/chromium/FontChromiumWin.cpp: (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::initializeForGDI): (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter): (WebCore::Font::drawComplexText): * platform/graphics/chromium/ImageBufferData.h: * platform/graphics/chromium/LayerChromium.h: * platform/graphics/chromium/LayerRendererChromium.h: * platform/graphics/chromium/PlatformCanvas.cpp: (WebCore::PlatformCanvas::resize): * platform/graphics/chromium/PlatformCanvas.h: * platform/graphics/chromium/TransparencyWin.cpp: (WebCore::TransparencyWin::compositeTextComposite): (WebCore::TransparencyWin::makeLayerOpaque): * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageBuffer::ImageBuffer): * platform/graphics/skia/ImageSkia.cpp: (WebCore::paintSkBitmap): (WebCore::Image::drawPattern): * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::PlatformContextSkia): (WebCore::PlatformContextSkia::setCanvas): (WebCore::PlatformContextSkia::isPrinting): (WebCore::PlatformContextSkia::isNativeFontRenderingAllowed): * platform/graphics/skia/PlatformContextSkia.h: (WebCore::PlatformContextSkia::canvas): 2011-04-12 Enrica Casucci Reviewed by Alexey Proskuryakov. Implement non-activating clicks to allow dragging out of a background window. https://bugs.webkit.org/show_bug.cgi?id=55053 * WebCore.exp.in: Added new exported method. 2011-04-12 Geoffrey Garen Reviewed by Geoffrey Garen. Cleaned up hash traits, and added hash traits for handles https://bugs.webkit.org/show_bug.cgi?id=58381 * dom/QualifiedName.h: Use new SimpleClassHashTraits to avoid duplication. * platform/KURL.h: (WebCore::KURL::KURL): (WebCore::KURL::isHashTableDeletedValue): Added explicit hash table deleted value constructor, to be more explicit and enable use of SimpleClassHashTraits. * platform/KURLHash.h: Use new SimpleClassHashTraits to avoid duplication. * platform/graphics/FontCache.cpp: Ditto. * platform/network/ProtectionSpaceHash.h: Ditto. * svg/properties/SVGAnimatedPropertyDescription.h: Ditto. 2011-04-12 Luiz Agostini Reviewed by Andreas Kling. [Qt] QNetworkReplyHandler refactoring: remove nested event loop. https://bugs.webkit.org/show_bug.cgi?id=58375 As QNAM now makes actual synchronous loads there is no need for a nested event loop in ResourceHandleQt. Moving the call for QNetworkReplyWrapper::synchronousLoad from ResourceHandle::loadResourceSynchronously to QNetworkReplyHandler::start for the redirections to work in synchronous requests. * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyHandler::start): * platform/network/qt/QNetworkReplyHandler.h: * platform/network/qt/ResourceHandleQt.cpp: (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): (WebCore::WebCoreSynchronousLoader::didReceiveResponse): (WebCore::WebCoreSynchronousLoader::didReceiveData): (WebCore::WebCoreSynchronousLoader::didFinishLoading): (WebCore::WebCoreSynchronousLoader::didFail): (WebCore::ResourceHandle::loadResourceSynchronously): 2011-04-11 Jer Noble Reviewed by Simon Fraser. REGRESSION: Vimeo fullscreen video displays incorrectly https://bugs.webkit.org/show_bug.cgi?id=58291 Set the RenderFullScreen's zIndex to the max. And make sure to override a video element's specified width and height by making its full screen rules important. Also, always show the controls when a media element is in full screen mode. Test: fullscreen/video-specified-size.html Test: fullscreen/full-screen-zIndex.html * css/fullscreen.css: (video:-webkit-full-screen): * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::controls): Always show controls in full screen mode. (WebCore::HTMLMediaElement::preDispatchEventHandler): Added. Handle the fullscreen change event and hide or show the controls accordingly. * html/HTMLMediaElement.h: * rendering/RenderFullScreen.cpp: (RenderFullScreen::createFullScreenStyle): Set the zIndex to INT_MAX and use a vertical flexbox instead of a horizontal one. 2011-04-12 Chris Marrin Reviewed by Simon Fraser. Page tears and stutters in WebKit2 when page is > 2048 pixels wide https://bugs.webkit.org/show_bug.cgi?id=58330 Added API to GraphicsLayer to disable switching to tiled layers. This is set in the nonCompositedContentLayer in WK2, causing that layer to never switch to tiles and avoiding the asynchronous update of the content during scroll. * platform/graphics/ca/GraphicsLayerCA.cpp: Implement setAllowTiledLayer() to simulate a SizeChanged action to properly switch between tiled and untiled layer. * platform/graphics/ca/GraphicsLayerCA.h: 2011-04-12 Alok Priyadarshi Reviewed by James Robinson. Remove dependency on chromium skia::PlatformCanvas https://bugs.webkit.org/show_bug.cgi?id=57563 This patch does not change any functionality, just the type of object skia::PlatformCanvas -> SkCanvas. The object is still being created by a factory method skia::CreateBitmapCanvas defined in Chromium. We will eventually define an API that every port using skia will define. * platform/graphics/chromium/FontChromiumWin.cpp: (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::initializeForGDI): (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter): (WebCore::Font::drawComplexText): * platform/graphics/chromium/ImageBufferData.h: * platform/graphics/chromium/LayerChromium.h: * platform/graphics/chromium/LayerRendererChromium.h: * platform/graphics/chromium/PlatformCanvas.cpp: (WebCore::PlatformCanvas::resize): * platform/graphics/chromium/PlatformCanvas.h: * platform/graphics/chromium/TransparencyWin.cpp: (WebCore::TransparencyWin::compositeTextComposite): (WebCore::TransparencyWin::makeLayerOpaque): * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageBuffer::ImageBuffer): * platform/graphics/skia/ImageSkia.cpp: (WebCore::paintSkBitmap): (WebCore::Image::drawPattern): * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::PlatformContextSkia): (WebCore::PlatformContextSkia::setCanvas): (WebCore::PlatformContextSkia::isNativeFontRenderingAllowed): * platform/graphics/skia/PlatformContextSkia.h: (WebCore::PlatformContextSkia::canvas): (WebCore::PlatformContextSkia::printing): (WebCore::PlatformContextSkia::setPrinting): 2011-04-11 Stephanie Lewis Reviewed by Oliver Hunt. https://bugs.webkit.org/show_bug.cgi?id=58280 javascript in an inconsistent state due to serialization returning an un-handled exception Currently serialization and deserialization can throw javascript exceptions. Since SerializedScriptValue is called in several places that do not always involve direct calls into javascript have the functions return an error code and the callers decide whether or not to throw exceptions. Don't allow SerializedScriptValue to attempt to serialize objects that inherit from JSNavigator.h. Walking that object creates additional objects which eventually causes serialization to end up throwing a stack overflow error. Instead fail immediately. Untangle header includes. SerializedScriptValue was inheriting ScriptValue.h, but not using it. Since ScriptValue depends on SerializedScriptValue this could lead to a circular header dependency. No change in functionality, covered by current tests * WebCore.exp.in: * bindings/js/JSMessageEventCustom.cpp: (WebCore::JSMessageEvent::initMessageEvent): * bindings/js/ScriptValue.cpp: (WebCore::ScriptValue::serialize): (WebCore::ScriptValue::deserialize): * bindings/js/ScriptValue.h: * bindings/js/SerializedScriptValue.cpp: (WebCore::CloneSerializer::serialize): (WebCore::CloneSerializer::dumpIfTerminal): (WebCore::CloneDeserializer::deserialize): (WebCore::SerializedScriptValue::create): (WebCore::SerializedScriptValue::deserialize): (WebCore::SerializedScriptValue::maybeThrowExceptionIfSerializationFailed): (WebCore::SerializedScriptValue::serializationDidCompleteSuccessfully): * bindings/js/SerializedScriptValue.h: * bindings/js/JSWorkerContextBase.cpp: header include fix * loader/FrameLoader.h: header include fix * page/Frame.cpp: header include fix 2011-03-28 Adam Barth Reviewed by Kenneth Russell. Move libtess from WebCore/thirdparty to ThirdParty https://bugs.webkit.org/show_bug.cgi?id=57288 * WebCore.gyp/WebCore.gyp: - Add libtess as a legit dependency. * WebCore.gypi: - Remove libtess files from the gypi. * thirdparty/glu: Removed. 2011-04-12 Ryosuke Niwa Reviewed by David Hyatt. Bundle w and tmpW in findNextLineBreak together as a class https://bugs.webkit.org/show_bug.cgi?id=58362 Renamed w, tempW, and width in findNextLineBreak to committedWidth, uncommittedWidth, and availableWidth respectively. Also bundled committedWidth and uncommittedWith as a class named LineWidth. * rendering/RenderBlockLineLayout.cpp: (WebCore::LineWidth::LineWidth): Added. (WebCore::LineWidth::currentWidth): Added; returns the sum of committed and uncommitted width. (WebCore::LineWidth::uncommittedWidth): Added. (WebCore::LineWidth::committedWidth): Added. (WebCore::LineWidth::addUncommittedWidth): Added; adds the specified width to the uncommitted width. (WebCore::LineWidth::commit): Added; commits the current width and clears the uncommitted width. (WebCore::RenderBlock::findNextLineBreak): Uses LineWidth. 2011-04-12 Yael Aharon Reviewed by Eric Seidel. REGRESSION(r82419): extra border in t0805-c5519-ibrdr-r-00-a.html https://bugs.webkit.org/show_bug.cgi?id=57459 Slightly change the way we decide if a InlineFlowBox is the last box for its renderer. We include the border in that box under these conditions: (1) The next line was not created, or it is constructed. We check the previous line for rtl. (2) The logicallyLastRun is not a descendant of this renderer. (3) The logicallyLastRun is a descendant of this renderer, but it is the last child of this renderer and it does not wrap to the next line. I added the tests from bug 47210, because now the draw the borders correctly. Tests: fast/borders/bidi-002.html fast/borders/bidi-004.html fast/borders/bidi-009a.html * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::onEndChain): (WebCore::isAnsectorAndWithinBlock): (WebCore::InlineFlowBox::determineSpacingForFlowBoxes): * rendering/InlineFlowBox.h: * rendering/RenderBlock.h: * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::constructLine): (WebCore::RenderBlock::layoutInlineChildren): 2011-04-12 Geoffrey Garen Reviewed by Sam Weinig. Cleaned up some Vector traits, and added missing Vector traits for handles https://bugs.webkit.org/show_bug.cgi?id=58372 * platform/graphics/BitmapImage.h: Added a FIXME because the current Vector traits for FrameData are logically incorrect, but I couldn't find a place where this currently results in bad behavior, and it's not immediately obvious what the right solution is. 2011-04-12 Dimitri Glazkov Reviewed by Eric Seidel. Move MediaControlElements to html/shadow. https://bugs.webkit.org/show_bug.cgi?id=58347 Mechanical move of the files. * Android.mk: Updated the build file. * CMakeLists.txt: Ditto. * GNUmakefile.list.am: Ditto. * WebCore.gypi: Ditto. * WebCore.pro: Ditto. * WebCore.vcproj/WebCore.vcproj: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto, also ran sort-XCode-project-files. * html/shadow/MediaControlElements.cpp: Copied from Source/WebCore/rendering/MediaControlElements.cpp. (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler): * html/shadow/MediaControlElements.h: Copied from Source/WebCore/rendering/MediaControlElements.h. * rendering/MediaControlElements.cpp: Removed. * rendering/MediaControlElements.h: Removed. * rendering/RenderingAllInOne.cpp: Removed the files that were moved. 2011-04-12 Luiz Agostini Reviewed by Andreas Kling. [Qt] QNetworkReplyHandler refactoring: signal queue https://bugs.webkit.org/show_bug.cgi?id=57075 The idea is to make all signals that come from the QNetworkReply to pass through a queue and to stop that queue when loading is deferred. This way almost all the deferred logic can be removed from QNetworkReplyHandler class and encapsulated in its own class. To stop the queue during wrapper methods execution avoids stacking handler methods over wrapper methods. Because of this there is no chance for the wrapper to be destroyed inside one of its methods. This together with empting the queue at wrapper destruction time makes sure that the handler will not receive calls from a dead wrapper. The new class is named QNetworkReplyHandlerCallQueue. * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyHandlerCallQueue::QNetworkReplyHandlerCallQueue): (WebCore::QNetworkReplyHandlerCallQueue::push): (WebCore::QNetworkReplyHandlerCallQueue::lock): (WebCore::QNetworkReplyHandlerCallQueue::unlock): (WebCore::QNetworkReplyHandlerCallQueue::setDeferSignals): (WebCore::QueueLocker::QueueLocker): (WebCore::QueueLocker::~QueueLocker): (WebCore::QNetworkReplyWrapper::QNetworkReplyWrapper): (WebCore::QNetworkReplyWrapper::~QNetworkReplyWrapper): (WebCore::QNetworkReplyWrapper::receiveMetaData): (WebCore::QNetworkReplyWrapper::readyRead): (WebCore::QNetworkReplyWrapper::didReceiveFinished): (WebCore::QNetworkReplyHandler::QNetworkReplyHandler): (WebCore::QNetworkReplyHandler::resetState): (WebCore::QNetworkReplyHandler::release): (WebCore::QNetworkReplyHandler::finish): (WebCore::QNetworkReplyHandler::sendResponseIfNeeded): (WebCore::QNetworkReplyHandler::forwardData): (WebCore::QNetworkReplyHandler::start): (WebCore::QNetworkReplyHandler::synchronousLoad): * platform/network/qt/QNetworkReplyHandler.h: (WebCore::QNetworkReplyHandlerCallQueue::deferSignals): (WebCore::QNetworkReplyHandlerCallQueue::clear): (WebCore::QNetworkReplyWrapper::synchronousLoad): (WebCore::QNetworkReplyHandler::setLoadingDeferred): * platform/network/qt/ResourceHandleQt.cpp: (WebCore::ResourceHandle::loadResourceSynchronously): 2011-04-12 David Hyatt Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=58176 Inline replaced elements following positioned elements on lines are not rendered. Make sure the logic for skipping run construction in appendRunsForObject matches the new logic that I added to findNextLineBreak. If they don't match up, you risk confusing the run construction code and causing it to not make runs for objects that follow the positioned object on the line. Added fast/inline/positioned-object-between-replaced-elements.html * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::appendRunsForObject): 2011-04-12 Alice Liu Reviewed by Sam Weinig. https://bugs.webkit.org/show_bug.cgi?id=58292 Provide new setting to allow site icon loading despite disabling automatic image loading in general. Test: http/tests/misc/favicon-loads-with-icon-loading-override.html * WebCore.exp.in: Added export symbol * loader/FrameLoader.cpp: (WebCore::FrameLoader::startIconLoader): Check new setting before deciding that site icon images shouldn't be loaded. * page/Settings.cpp: (WebCore::Settings::Settings): Add initializer for new setting (WebCore::Settings::setLoadsSiteIconsIgnoringImageLoadingSetting): Add setter for new setting. * page/Settings.h: Explain nuances regarding loadsImagesAutomatically setting. (WebCore::Settings::loadsSiteIconsIgnoringImageLoadingSetting): Added getter. 2011-04-12 Ryosuke Niwa Reviewed by Eric Seidel. Move StyleChange and other global functions from ApplyStyleCommand to EditingStyle https://bugs.webkit.org/show_bug.cgi?id=55974 Moved StyleChange, getIdentifierValue, and legacyFontSizeFromCSSValue from ApplyStyleCommand to EditingStyle. Also moved reconcileTextDecorationProperties, getIdentifierValue, setTextDecorationProperty, isCSSValueLength, legacyFontSizeFromCSSValue, extractTextStyles, diffTextDecorations, fontWeightIsBold, getTextAlignment, and getPropertiesNotIn. Because of this move, getPropertiesNotIn is no longer visible outside of EditingStyle.cpp * editing/ApplyStyleCommand.cpp: * editing/ApplyStyleCommand.h: * editing/EditingStyle.cpp: (WebCore::reconcileTextDecorationProperties): (WebCore::StyleChange::StyleChange): (WebCore::setTextDecorationProperty): (WebCore::getRGBAFontColor): (WebCore::StyleChange::extractTextStyles): (WebCore::diffTextDecorations): (WebCore::fontWeightIsBold): (WebCore::getTextAlignment): (WebCore::getPropertiesNotIn): (WebCore::getIdentifierValue): (WebCore::isCSSValueLength): (WebCore::legacyFontSizeFromCSSValue): * editing/EditingStyle.h: (WebCore::StyleChange::cssStyle): (WebCore::StyleChange::applyBold): (WebCore::StyleChange::applyItalic): (WebCore::StyleChange::applyUnderline): (WebCore::StyleChange::applyLineThrough): (WebCore::StyleChange::applySubscript): (WebCore::StyleChange::applySuperscript): (WebCore::StyleChange::applyFontColor): (WebCore::StyleChange::applyFontFace): (WebCore::StyleChange::applyFontSize): (WebCore::StyleChange::fontColor): (WebCore::StyleChange::fontFace): (WebCore::StyleChange::fontSize): (WebCore::StyleChange::operator==): (WebCore::StyleChange::operator!=): 2011-04-12 Diego Gonzalez Reviewed by Kenneth Rohde Christiansen. [Qt] Better padding for inputs and comboxes in mobile theme https://bugs.webkit.org/show_bug.cgi?id=58248 * platform/qt/RenderThemeQt.cpp: (WebCore::RenderThemeQt::setButtonPadding): (WebCore::RenderThemeQt::adjustTextFieldStyle): (WebCore::RenderThemeQt::paintTextField): (WebCore::RenderThemeQt::adjustMenuListStyle): 2011-04-11 Abhishek Arya Reviewed by Dave Hyatt. Replace insertChildNode with addChild in handleRunIn's reparenting of inlineRunIn to currBlock. https://bugs.webkit.org/show_bug.cgi?id=58228 Use addChild instead of insertChildNode since it handles correct placement of the children, esp where we cannot insert anything before the first child. e.g. details tag requires that its first child be a summary child and won't be able to remove child if that is not the case. Test: fast/runin/runin-reparent-crash.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::handleRunInChild): 2011-04-12 Chris Fleizach Unreviewed. Fixing Leopard build. REGRESSION: WK2: misspelled AX attributes no longer returned from text fields https://bugs.webkit.org/show_bug.cgi?id=58304 checkTextOfParagraph is not available on Leopard. That code needs to be conditionalized with USE(UNIFIED_TEXT_CHECKING). * accessibility/mac/AccessibilityObjectWrapper.mm: (AXAttributeStringSetSpelling): 2011-04-12 Mario Sanchez Prada Unreviewed. Added missing files to GNUmakefile.list.am. * GNUmakefile.list.am: Added IDBLevelDBBackingStore.[h|cpp]. 2011-04-12 Cris Neckar Reviewed by Nikolas Zimmermann. Add handling for non-svg inline text boxes in text box lists. https://bugs.webkit.org/show_bug.cgi?id=57933 Test: svg/text/svg-rtl-text-crash.html * rendering/svg/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::positionForPoint): * rendering/svg/SVGInlineFlowBox.cpp: (WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer): * rendering/svg/SVGRenderTreeAsText.cpp: (WebCore::writeSVGInlineTextBoxes): * rendering/svg/SVGRootInlineBox.cpp: (WebCore::SVGRootInlineBox::closestLeafChildForPosition): (WebCore::reverseInlineBoxRangeAndValueListsIfNeeded): * rendering/svg/SVGTextQuery.cpp: (WebCore::SVGTextQuery::collectTextBoxesInFlowBox): 2011-04-12 Mario Sanchez Prada Reviewed by Chris Fleizach. [GTK] Expose menu items and menus as children of a menu bar https://bugs.webkit.org/show_bug.cgi?id=56659 Ensure menu items get exposed when they're children of menu bars. * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::determineAriaRoleAttribute): Consider menu bars as potential parent objects for menu items. 2011-04-12 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: remove scriptWorldType from the protocol. https://bugs.webkit.org/show_bug.cgi?id=58324 * inspector/Inspector.json: * inspector/InspectorDebuggerAgent.cpp: (WebCore::InspectorDebuggerAgent::didParseSource): * inspector/ScriptDebugListener.h: (WebCore::ScriptDebugListener::~ScriptDebugListener): * inspector/front-end/DebuggerModel.js: (WebInspector.DebuggerModel.prototype._parsedScriptSource): (WebInspector.DebuggerDispatcher.prototype.scriptParsed): * inspector/front-end/Script.js: (WebInspector.Script): * inspector/front-end/ScriptsPanel.js: * inspector/front-end/SourceFile.js: (WebInspector.SourceFile): 2011-04-11 Dimitri Glazkov Reviewed by Eric Carlson. Should MediaControls::changedNetworkState fiddle with Fullscreen controls? https://bugs.webkit.org/show_bug.cgi?id=58163 Covered by existing tests and manual-tests/media-controls.html. * html/shadow/MediaControls.cpp: (WebCore::MediaControls::reset): Moved fullscreen showing/hiding here. (WebCore::MediaControls::changedNetworkState): ... from here. 2011-04-12 Ilya Tikhonovsky Reviewed by Pavel Feldman. Web Inspector: remove unnecessary method InspectorAgent.didEvaluateForTestInFrontend. https://bugs.webkit.org/show_bug.cgi?id=58335 It was the method for Inspector layout tests. We can use RuntimeAgent.evaluate instead. * inspector/Inspector.json: * inspector/InspectorAgent.cpp: * inspector/InspectorAgent.h: * inspector/InspectorController.cpp: (WebCore::InspectorController::connectFrontend): * inspector/front-end/TestController.js: (WebInspector.TestController.prototype.notifyDone): 2011-04-12 Philippe Normand Reviewed by Martin Robinson. [GStreamer] some public callbacks remain https://bugs.webkit.org/show_bug.cgi?id=58307 Cleanup of the player public/private APIs. Moving the GstMessage handling code inside of the player allowed some APIs to move to the private scope of the class. No new tests, this patch is a cleanup and should not affect current tests coverage. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::mediaPlayerPrivateMessageCallback): (WebCore::mediaPlayerPrivateSourceChangedCallback): (WebCore::mediaPlayerPrivateVolumeChangedCallback): (WebCore::mediaPlayerPrivateMuteChangedCallback): (WebCore::mediaPlayerPrivateRepaintCallback): (WebCore::MediaPlayerPrivateGStreamer::playbackPosition): (WebCore::MediaPlayerPrivateGStreamer::currentTime): (WebCore::MediaPlayerPrivateGStreamer::seek): (WebCore::MediaPlayerPrivateGStreamer::setRate): (WebCore::MediaPlayerPrivateGStreamer::handleMessage): (WebCore::MediaPlayerPrivateGStreamer::sourceChanged): (WebCore::MediaPlayerPrivateGStreamer::triggerRepaint): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: 2011-04-12 Philippe Normand Reviewed by Martin Robinson. [GStreamer] advertize HTTP Live Streaming mime-type https://bugs.webkit.org/show_bug.cgi?id=58318 Register the hls mime-type in the internal cache if found in the typefind factories. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::mimeTypeCache): 2011-04-11 MORITA Hajime Reviewed by Ryosuke Niwa. RenderIndicator and ShadowBlockElement are no longer used. https://bugs.webkit.org/show_bug.cgi?id=58277 Removed RenderIndicator and ShadowBlockElement. No new tests. Just removed unused code. * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * rendering/RenderIndicator.cpp: Removed. * rendering/RenderIndicator.h: Removed. * rendering/RenderMeter.h: * rendering/RenderingAllInOne.cpp: * rendering/ShadowElement.cpp: * rendering/ShadowElement.h: 2011-04-12 Csaba Osztrogonác Reviewed by Benjamin Poulain. fast/css/dashboard-regions-attr-crash.html asserts https://bugs.webkit.org/show_bug.cgi?id=58233 Move DASHBOARD_SUPPORT feature detection from features.pri to CodeGenerators.pri not to generate incorrect properties into CSSPropertyNames.h. * CodeGenerators.pri: * features.pri: 2011-04-12 Chris Fleizach Reviewed by Dan Bernstein. REGRESSION: WK2: misspelled AX attributes no longer returned from text fields https://bugs.webkit.org/show_bug.cgi?id=58304 checkSpellingOfString is no longer implemented in WK2. Accessibility needs to change to use checkTextOfParagraph in order to retrieve misspelled ranges. Existing tests cover this functionality. * accessibility/mac/AccessibilityObjectWrapper.mm: (AXAttributeStringSetSpelling): 2011-04-12 Sergio Villar Senin Reviewed by Martin Robinson. [GTK] Remove m_idleHandler from ResourceHandleSoup https://bugs.webkit.org/show_bug.cgi?id=58319 The m_idleHandler attribute is no longer used in ResourceHandleSoup. No new tests needed, no functionality change. * platform/network/ResourceHandleInternal.h: (WebCore::ResourceHandleInternal::ResourceHandleInternal): * platform/network/soup/ResourceHandleSoup.cpp: (WebCore::ResourceHandleInternal::~ResourceHandleInternal): 2011-04-12 Andrey Adaikin Reviewed by Yury Semikhatsky. Web Inspector: Breakpoints and execution line decoration should stay in place if the edited line is not whitespace https://bugs.webkit.org/show_bug.cgi?id=58314 * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype._lineNumberAfterEditing): 2011-04-11 Pavel Podivilov Reviewed by Pavel Feldman. Web Inspector: move shortcut handlers from SourceFrame to TextViewer. https://bugs.webkit.org/show_bug.cgi?id=58238 Commit/cancel editing functionality is common for all resource types, and it deals with TextViewer state. * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame): (WebInspector.SourceFrame.prototype.isContentEditable): (WebInspector.SourceFrame.prototype._createTextViewer): (WebInspector.SourceFrame.prototype.commitEditing.didEditContent): (WebInspector.SourceFrame.prototype.commitEditing): (WebInspector.SourceFrame.prototype.cancelEditing): * inspector/front-end/TextViewer.js: (WebInspector.TextViewer.prototype._doubleClick): (WebInspector.TextViewer.prototype._registerShortcuts): (WebInspector.TextViewer.prototype._handleKeyDown): (WebInspector.TextViewer.prototype._commitEditing.didCommitEditing): (WebInspector.TextViewer.prototype._commitEditing): (WebInspector.TextViewer.prototype._cancelEditing): (WebInspector.TextViewerDelegate.prototype.endEditing): (WebInspector.TextViewerDelegate.prototype.commitEditing): (WebInspector.TextViewerDelegate.prototype.cancelEditing): 2011-04-12 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: cookies view is empty even for sites with cookies. https://bugs.webkit.org/show_bug.cgi?id=58316 Test: http/tests/inspector/resource-tree-model.html * inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel.prototype._callForFrameResources): 2011-04-11 Stephen White Reviewed by James Robinson. [chromium] GPU-accelerated canvas-to-canvas drawImage is incorrect. https://bugs.webkit.org/show_bug.cgi?id=58258 When one accelerated canvas is drawn to another via drawImage(), if the prior call in the source canvas was non-accelerated, the hardware canvas is not up-to-date, and the results will be incorrect. Fixed by calling prepareForHardwareDraw() on the source context. Test: fast/canvas/canvas-to-canvas.html * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageBuffer::draw): 2011-04-12 Mikhail Naganov Reviewed by Pavel Feldman. Web Inspector: [Chromium] Add some more tests for detailed heap snapshots UI. https://bugs.webkit.org/show_bug.cgi?id=58146 Tests: inspector/profiler/detailed-heapshots-comparison-expansion-preserved-when-sorting.html inspector/profiler/detailed-heapshots-comparison-show-all.html inspector/profiler/detailed-heapshots-comparison-show-next.html inspector/profiler/detailed-heapshots-comparison-shown-node-count-preserved-when-sorting.html inspector/profiler/detailed-heapshots-comparison-sorting.html inspector/profiler/detailed-heapshots-containment-shown-node-count-preserved-when-sorting.html inspector/profiler/detailed-heapshots-dominators-expansion-preserved-when-sorting.html inspector/profiler/detailed-heapshots-dominators-show-all.html inspector/profiler/detailed-heapshots-dominators-show-next.html inspector/profiler/detailed-heapshots-dominators-shown-node-count-preserved-when-sorting.html inspector/profiler/detailed-heapshots-dominators-sorting.html inspector/profiler/detailed-heapshots-summary-shown-node-count-preserved-when-sorting.html * inspector/front-end/DetailedHeapshotView.js: (WebInspector.HeapSnapshotDiffDataGrid): 2011-04-12 Ilya Tikhonovsky Reviewed by Yury Semikhatsky. Web Inspector: there was incorrect value of id property of responses for malformed json-rpc 2.0 requests. https://bugs.webkit.org/show_bug.cgi?id=58305 It was 0 if the message is not a json object or it has no id property. But according to spec it must be null. * inspector/CodeGeneratorInspector.pm: 2011-04-11 Pavel Podivilov Reviewed by Pavel Feldman. Web Inspector: [chromium] script formatting doesn't work when chromium is built with debug_devtools=1. https://bugs.webkit.org/show_bug.cgi?id=58232 * WebCore.gypi: 2011-04-12 Pavel Podivilov Reviewed by Pavel Feldman. Web Inspector: REGRESSION: Most resources in the Network panel show a blank panel when clicked. https://bugs.webkit.org/show_bug.cgi?id=58273 * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame): (WebInspector.SourceFrame.prototype.get visible): (WebInspector.SourceFrame.prototype.set visible): (WebInspector.SourceFrame.prototype.show): (WebInspector.SourceFrame.prototype.hide): (WebInspector.SourceFrame.prototype.detach): (WebInspector.SourceFrame.prototype._ensureContentLoaded): (WebInspector.SourceFrame.prototype.markDiff): (WebInspector.SourceFrame.prototype.addMessage): (WebInspector.SourceFrame.prototype.clearMessages): (WebInspector.SourceFrame.prototype.get scrollTop): (WebInspector.SourceFrame.prototype.set scrollTop): (WebInspector.SourceFrame.prototype.highlightLine): (WebInspector.SourceFrame.prototype._clearLineHighlight): (WebInspector.SourceFrame.prototype._initializeTextViewer): (WebInspector.SourceFrame.prototype.performSearch): (WebInspector.SourceFrame.prototype.searchCanceled): (WebInspector.SourceFrame.prototype._jumpToSearchResult): (WebInspector.SourceFrame.prototype.setExecutionLine): (WebInspector.SourceFrame.prototype.clearExecutionLine): (WebInspector.SourceFrame.prototype.resize): 2011-04-12 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: document runtime agent, share remote object definition between domains. https://bugs.webkit.org/show_bug.cgi?id=58246 * inspector/Inspector.json: 2011-04-12 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: document console domain, support cross-domain type references. https://bugs.webkit.org/show_bug.cgi?id=58240 * inspector/ConsoleMessage.cpp: (WebCore::messageSourceValue): (WebCore::messageTypeValue): (WebCore::messageLevelValue): (WebCore::ConsoleMessage::addToFrontend): * inspector/Inspector.json: * inspector/ScriptCallFrame.cpp: (WebCore::ScriptCallFrame::buildInspectorObject): * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.messageAdded): (WebInspector.ConsoleMessage): (WebInspector.ConsoleMessage.prototype._populateStackTraceTreeElement): (WebInspector.ConsoleMessage.prototype.isEqual): * inspector/front-end/NetworkManager.js: (WebInspector.NetworkDispatcher.prototype.requestWillBeSent): * inspector/generate-inspector-idl: * page/Console.h: 2011-04-06 Philippe Normand Reviewed by Martin Robinson. [GStreamer] RTSP playback broken https://bugs.webkit.org/show_bug.cgi?id=56930 Rely on {audio,video}-changed playbin2 signals instead of the -tags-changed signals because some media don't provide tags and then can trick the media-player to not paint video, for instance. Also trigger a video size calculation after the video sink negotiated its caps. This is useful in the cases where audio-changed signal is emitted but the video sink takes more time to negociate caps with its peer. This patch also fixes the rtsp manual-test with a new stream url which seems to be more permanent than the previous WWDC keynote stream. * manual-tests/video-rtsp.html: * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::mediaPlayerPrivateVideoChangedCallback): (WebCore::mediaPlayerPrivateAudioChangedCallback): (WebCore::mediaPlayerPrivateAudioChangeTimeoutCallback): (WebCore::mediaPlayerPrivateVideoChangeTimeoutCallback): (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): (WebCore::MediaPlayerPrivateGStreamer::naturalSize): (WebCore::MediaPlayerPrivateGStreamer::videoChanged): (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo): (WebCore::MediaPlayerPrivateGStreamer::audioChanged): (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio): (WebCore::MediaPlayerPrivateGStreamer::paint): (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: 2011-04-12 Vsevolod Vlasov Reviewed by Pavel Feldman. Web Inspector: Failed/canceled resource requests kept showing as Pending in network panel. https://bugs.webkit.org/show_bug.cgi?id=58135 Added statuses for failed/canceled resource loading. * English.lproj/localizedStrings.js: * inspector/Inspector.json: * inspector/InspectorResourceAgent.cpp: (WebCore::InspectorResourceAgent::didFailLoading): * inspector/front-end/NetworkManager.js: * inspector/front-end/NetworkPanel.js: * inspector/front-end/Resource.js: 2011-04-12 Steve Block Reviewed by Oliver Hunt. Callable objects created via JavaScriptCore API cannot be used as Geolocation callbacks https://bugs.webkit.org/show_bug.cgi?id=40012 Covered by fast/dom/Geolocation/argument-types.html * bindings/js/CallbackFunction.cpp: (WebCore::checkFunctionOnlyCallback): 2011-04-07 Philippe Normand Reviewed by Martin Robinson. [GStreamer] report playback statistics https://bugs.webkit.org/show_bug.cgi?id=58033 Provide media playback statistics using fpsdisplaysink and position queries. * manual-tests/video-statistics.html: Added. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::decodedFrameCount): (WebCore::MediaPlayerPrivateGStreamer::droppedFrameCount): (WebCore::MediaPlayerPrivateGStreamer::audioDecodedByteCount): (WebCore::MediaPlayerPrivateGStreamer::videoDecodedByteCount): (WebCore::MediaPlayerPrivateGStreamer::updateAudioSink): (WebCore::MediaPlayerPrivateGStreamer::updateStates): (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: 2011-04-11 Philippe Normand Reviewed by Martin Robinson. [GStreamer] warnings in media/video-set-rate-from-pause.html https://bugs.webkit.org/show_bug.cgi?id=58220 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::setRate): Pause the pipeline if new rate is zero, like advised in the GStreamer documentation of gst_event_new_seek(). 2011-04-11 Vangelis Kokkevis Reviewed by James Robinson. [chromium] Properly invalidate the contents of ImageLayerChromium's when the actual image contents change. https://bugs.webkit.org/show_bug.cgi?id=58181 Test: compositing/images/content-image-change.html * platform/graphics/chromium/ContentLayerChromium.cpp: (WebCore::ContentLayerChromium::updateTexture): * platform/graphics/chromium/ImageLayerChromium.cpp: (WebCore::ImageLayerChromium::ImageLayerChromium): (WebCore::ImageLayerChromium::setContents): (WebCore::ImageLayerChromium::paintContentsIfDirty): * platform/graphics/chromium/ImageLayerChromium.h: 2011-04-11 Simon Fraser Reviewed by Dan Bernstein. -webkit-box-shadow:inset does not animate transform as an inset shadow https://bugs.webkit.org/show_bug.cgi?id=45176 Two fixes: 1. Don't run transitions between different shadow styles (normal vs. inset). 2. When either source or destination is null, use a default shadow with a matching style so that the transition runs. Test: transitions/mismatched-shadow-styles.html * page/animation/AnimationBase.cpp: (WebCore::blendFunc): (WebCore::PropertyWrapperShadow::blend): 2011-04-11 John Bates Reviewed by Kenneth Russell. chromium support for glSetLatch and glWaitLatch between 3D contexts https://bugs.webkit.org/show_bug.cgi?id=58003 * platform/graphics/chromium/Canvas2DLayerChromium.cpp: (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium): (WebCore::Canvas2DLayerChromium::setDrawingBuffer): (WebCore::Canvas2DLayerChromium::setLayerRenderer): * platform/graphics/chromium/Canvas2DLayerChromium.h: * platform/graphics/chromium/Extensions3DChromium.h: * platform/graphics/chromium/GLES2Canvas.cpp: (WebCore::Cubic::Cubic): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::LayerRendererChromium): (WebCore::LayerRendererChromium::updateAndDrawLayers): (WebCore::LayerRendererChromium::updateLayers): (WebCore::LayerRendererChromium::addChildContext): (WebCore::LayerRendererChromium::removeChildContext): * platform/graphics/chromium/LayerRendererChromium.h: * platform/graphics/chromium/WebGLLayerChromium.cpp: (WebCore::WebGLLayerChromium::~WebGLLayerChromium): (WebCore::WebGLLayerChromium::updateCompositorResources): (WebCore::WebGLLayerChromium::setContext): (WebCore::WebGLLayerChromium::setLayerRenderer): * platform/graphics/chromium/WebGLLayerChromium.h: 2011-04-11 Alexey Marinichev Reviewed by James Robinson. LayerChromium/CCLayerImpl ownership fix https://bugs.webkit.org/show_bug.cgi?id=58283 CCLayerImpl's m_owner field lifetime should match the lifetime of the corresponding LayerChromium. This change moves resetting of m_owner into LayerChromium's destructor. Tested similarly to bug 57577. * platform/graphics/chromium/LayerChromium.cpp: (WebCore::LayerChromium::~LayerChromium): * platform/graphics/chromium/cc/CCLayerImpl.cpp: (WebCore::CCLayerImpl::cleanupResources): * platform/graphics/chromium/cc/CCLayerImpl.h: (WebCore::CCLayerImpl::resetOwner): 2011-04-11 Daniel Bates Attempt to fix the GTK build after changeset 83527 (https://bugs.webkit.org/show_bug.cgi?id=53556). * GNUmakefile.list.am: Append files HTMLTrackElement.{h, cpp} to the list webcore_sources. 2011-04-11 Brady Eidson Reviewed by Maciej Stachowiak. and https://bugs.webkit.org/show_bug.cgi?id=58072 URLs accessed as a result of pushState/replaceState should count as "visited" and be in the global history Test: fast/loader/stateobjects/state-url-sets-links-visited.html * loader/HistoryController.cpp: (WebCore::HistoryController::pushState): Notify the history client and add the visited link. (WebCore::HistoryController::replaceState): Ditto. 2011-04-11 Dimitri Glazkov Reviewed by Eric Carlson. Rename MediaControls to MediaControlRootElement. https://bugs.webkit.org/show_bug.cgi?id=58250 Mechanical move using do-webcore-rename. 2011-04-11 Dean Jackson Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=58285 CompositeAnimation is cleared while an AnimationBase is waiting for notification Occasionally hardware animations would trigger a state where they would tell the AnimationControllerPrivate that it should notify any waiting animations that they are ready to start, even though the RenderObject had gone away and hence the CompositeAnimation had been destroyed. The fix is to zero the pointer from AnimationBase when the CompositeAnimation destructor runs (or its animations are cleared) and test the validity of the CompositeAnimation before it is used in AnimationBase. * page/animation/AnimationBase.cpp: (WebCore::AnimationBase::updateStateMachine): (WebCore::AnimationBase::fireAnimationEventsIfNeeded): (WebCore::AnimationBase::updatePlayState): (WebCore::AnimationBase::freezeAtTime): (WebCore::AnimationBase::beginAnimationUpdateTime): - test that the CompositeAnimation exists * page/animation/AnimationBase.h: (WebCore::AnimationBase::clear): - rename clearRenderer() to clear() as it now also clears the CompositeAnimation * page/animation/CompositeAnimation.cpp: (WebCore::CompositeAnimation::clearRenderer): (WebCore::CompositeAnimation::updateKeyframeAnimations): - call clear() rather than clearRenderer() 2011-04-11 Justin Novosad Reviewed by Kenneth Russell. [Chromium] Text anti-aliasing fails when rendering text with shadow https://bugs.webkit.org/show_bug.cgi?id=57584 * platform/graphics/chromium/FontChromiumWin.cpp: (WebCore::drawGlyphsWin): new static function, code factored-out from WebCore::Font::drawGlyphs (WebCore::Font::drawGlyphs): may separate font rendering into two passes to allow foreground glyphs to be rendered with GDI when Skia is required for rendering shadows * platform/graphics/skia/SkiaFontWin.cpp: (WebCore::windowsCanHandleDrawTextShadow): Modified method so that it does not assume a shadow is present, and returns true if there is no shadow (GDI can draw 'no shadow') (WebCore::windowsCanHandleTextDrawing): Factored out into sub methods so that the the shadow and foregound glyph properties can be tested separately independently. (WebCore::windowsCanHandleTextDrawingWithoutShadow): New method returns true if the foreground glyph only has effect that can be draw with GDI (WebCore::paintSkiaText): * platform/graphics/skia/SkiaFontWin.h: 2011-04-11 Ryosuke Niwa Unreviewed, rolling out r83515. http://trac.webkit.org/changeset/83515 https://bugs.webkit.org/show_bug.cgi?id=57178 Broke GTK builds. nextOnLineExists and prevOnLineExists are still used in AccessibilityObjectWrapperAtk.cpp. * rendering/InlineBox.cpp: (WebCore::InlineBox::nextOnLineExists): (WebCore::InlineBox::prevOnLineExists): * rendering/InlineBox.h: (WebCore::InlineBox::InlineBox): 2011-04-11 Brady Eidson Reverting, seeing something else still broken. Sorry. * html/HTMLTrackElement.cpp: 2011-04-11 Brady Eidson Fix the build. * html/HTMLTrackElement.cpp: Case-sensitive, please. 2011-04-11 Alexis Menard Unreviewed build fix for Mac. An idl file was added in the wrong place. * WebCore.xcodeproj/project.pbxproj: 2011-04-11 Chris Marrin Rubberstamped by Dan Bernstein. xhr.responseType = 'arraybuffer' works on Mac but not on Windows https://bugs.webkit.org/show_bug.cgi?id=50334 Got rid of guards around arraybuffer logic in XHR. ArrayBuffer and friends are always turned on now, so there's not need for the guard. I reenabled the test that was Skipped on Windows and it works now. * bindings/js/JSXMLHttpRequestCustom.cpp: (WebCore::JSXMLHttpRequest::markChildren): (WebCore::JSXMLHttpRequest::send): (WebCore::JSXMLHttpRequest::response): * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseArrayBuffer): (WebCore::XMLHttpRequest::setResponseType): (WebCore::XMLHttpRequest::send): (WebCore::XMLHttpRequest::clearResponseBuffers): (WebCore::XMLHttpRequest::didReceiveData): * xml/XMLHttpRequest.h: (WebCore::XMLHttpRequest::optionalResponseArrayBuffer): 2011-04-11 Anna Cavender Reviewed by Eric Carlson. Setup ENABLE(TRACK) feature define + initial HTMLTrackElement https://bugs.webkit.org/show_bug.cgi?id=53556 No new tests. No real functionality added just yet. * CMakeLists.txt: * CodeGenerators.pri: * Configurations/FeatureDefines.xcconfig: * DerivedSources.make: * GNUmakefile.am: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.xcodeproj/project.pbxproj: * features.pri: * html/HTMLAttributeNames.in: * html/HTMLTagNames.in: * html/HTMLTrackElement.cpp: Added. (WebCore::HTMLTrackElement::HTMLTrackElement): (WebCore::HTMLTrackElement::create): (WebCore::HTMLTrackElement::insertedIntoTree): (WebCore::HTMLTrackElement::willRemove): (WebCore::HTMLTrackElement::src): (WebCore::HTMLTrackElement::setSrc): (WebCore::HTMLTrackElement::kind): (WebCore::HTMLTrackElement::setKind): (WebCore::HTMLTrackElement::srclang): (WebCore::HTMLTrackElement::setSrclang): (WebCore::HTMLTrackElement::label): (WebCore::HTMLTrackElement::setLabel): (WebCore::HTMLTrackElement::isDefault): (WebCore::HTMLTrackElement::setIsDefault): (WebCore::HTMLTrackElement::isURLAttribute): * html/HTMLTrackElement.h: Added. * html/HTMLTrackElement.idl: Added. 2011-04-11 Ben Taylor Reviewed by David Levin. https://bugs.webkit.org/show_bug.cgi?id=57535 Better compile fix for Solaris 10/Sun Studio 12 CC needing * loader/icon/IconRecord.h: * page/Page.h: * platform/network/ResourceResponseBase.h: 2011-04-11 Alexey Proskuryakov Reviewed by Maciej Stachowiak. WebKit2: Cannot use Ctrl-Delete as a custom keyboard shortcut https://bugs.webkit.org/show_bug.cgi?id=58265 * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): Handle Backspace. (WebCore::EventHandler::defaultSpaceEventHandler): Enabled this on Mac, and added checks for other modifiers - no one wants to scroll on Ctrl+Alt+Space and such. (WebCore::EventHandler::defaultBackspaceEventHandler): Backspace goes back, Shift-backspace goes forward. All browsers do it. (WebCore::EventHandler::defaultArrowEventHandler): Assert that this function was called for a correct event. (WebCore::EventHandler::defaultTabEventHandler): Ditto. * page/EventHandler.h: Added defaultBackspaceEventHandler. 2011-04-11 Matthew Delaney Reviewed by Dan Bernstein. [CG] drawImage with a subimage bleeds pixel data at borders https://bugs.webkit.org/show_bug.cgi?id=58267 Test: fast/canvas/DrawImageSinglePixelStretch.html * platform/graphics/cg/ImageCG.cpp: (WebCore::BitmapImage::draw): Any interpolation quality other than 'none' will graft out the subimage first now. 2011-04-11 Chris Marrin Reviewed by Simon Fraser. iframe/compositing propagation should also work for and framesets https://bugs.webkit.org/show_bug.cgi?id=39037 Generalized the code that handles the parenting of composited