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 Oliver Hunt Reviewed by Geoff Garen. GC allocate Structure https://bugs.webkit.org/show_bug.cgi?id=58483 Update WebCore for Structure being a GC allocated object * 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::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/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-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