2012-04-19 Luke Macpherson Clean up list iteration in MediaQueryExp constructor (avoid unnecessary calls to current()). https://bugs.webkit.org/show_bug.cgi?id=84369 Reviewed by Simon Fraser. No new tests / code cleanup only. * css/MediaQueryExp.cpp: (WebCore::MediaQueryExp::MediaQueryExp): 2012-04-19 Mark Pilgrim [Chromium] Call signedPublicKeyAndChallengeString directly https://bugs.webkit.org/show_bug.cgi?id=84372 Reviewed by Kentaro Hara. Part of a refactoring series. See tracking bug 82948. * platform/chromium/PlatformSupport.h: (PlatformSupport): * platform/chromium/SSLKeyGeneratorChromium.cpp: (WebCore::signedPublicKeyAndChallengeString): 2012-04-19 Luke Macpherson Remove unnecessary assignment in CSSParser::parseCubicBezierTimingFunctionValue(). https://bugs.webkit.org/show_bug.cgi?id=84368 Reviewed by Simon Fraser. No new tests / code cleanup only. * css/CSSParser.cpp: (WebCore::CSSParser::parseCubicBezierTimingFunctionValue): 2012-04-19 Luke Macpherson Initialize all member variables in CSSImageSetValue's copy constructor. https://bugs.webkit.org/show_bug.cgi?id=84379 Reviewed by Simon Fraser. No new tests / code cleanup only. * css/CSSImageSetValue.cpp: (WebCore::CSSImageSetValue::CSSImageSetValue): 2012-04-19 Ken Buchanan Positioned children of ruby runs not handled correctly during layout https://bugs.webkit.org/show_bug.cgi?id=84157 Reviewed by Julien Chaffraix. A positioned ruby text causes a problem because it is excluded from normal layout by its parent and instead gets layout from RenderRubyRun::layoutSpecialExcludedChild; however this means it gets skipped over during the loop in RenderBlock::layoutBlockChildren, which is where positioned RenderBlocks get added to the appropriate positioned object lists. As a result, a dirty positioned ruby text will not get layout again unless the RenderRubyRun also needs layout which is not guaranteed. This patch disqualifies ruby text elements from being positioned. If it is necessary to support this in future, ruby text layout will have to be modified to ensure the renderers are added to the appropriate block lists. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::adjustRenderStyle): * rendering/RenderRubyRun.cpp: (WebCore::RenderRubyRun::rubyText): 2012-04-19 vsevik@chromium.org Web Inspector: No response body available for cached resource requests with error status codes. https://bugs.webkit.org/show_bug.cgi?id=84265 Reviewed by Pavel Feldman. InspectorResourceAgent now saves failed subresource request response body in its cache. Saved data is shown on front-end. Test: http/tests/inspector/network/network-image-404.html * inspector/InspectorResourceAgent.cpp: (WebCore::isErrorStatusCode): (WebCore): (WebCore::InspectorResourceAgent::didReceiveData): * inspector/NetworkResourcesData.cpp: (WebCore::NetworkResourcesData::ResourceData::removeContent): (WebCore::NetworkResourcesData::ResourceData::purgeContent): (WebCore): (WebCore::NetworkResourcesData::responseReceived): (WebCore::NetworkResourcesData::setResourceContent): * inspector/NetworkResourcesData.h: (ResourceData): (WebCore::NetworkResourcesData::ResourceData::httpStatusCode): (WebCore::NetworkResourcesData::ResourceData::setHTTPStatusCode): * inspector/front-end/RequestView.js: (WebInspector.RequestView.hasTextContent): 2012-04-19 Yury Semikhatsky Web Inspector / Heap snapshots: "Object's retaining tree" view doesn't get cleared when navigating between objects https://bugs.webkit.org/show_bug.cgi?id=84337 When DataGrid root node is reset, make sure all existing rows are removed. Reviewed by Vsevolod Vlasov. * inspector/front-end/DataGrid.js: (WebInspector.DataGrid.prototype.setRootNode): 2012-04-19 Beth Dakin https://bugs.webkit.org/show_bug.cgi?id=80536 REGRESSION: When Safari is not frontmost, pages should not get mouse moves or hover Reviewed by Adele Peterson. This patch just adds some code back that was removed by http://trac.webkit.org/changeset/102632 This particular code was unrelated to that bug and should not have been removed. * page/EventHandler.cpp: (WebCore::EventHandler::handleMouseMoveEvent): 2012-04-19 Xianzhu Wang DevTools highlights elements in frames at un-scaled positions https://bugs.webkit.org/show_bug.cgi?id=84181 On mobile platforms (e.g. chromium-android), normally pages are scaled, thus the coordinations of highlight rect inside of a frame needs to consider not only the offset, but also the scale. The change uses FrameView::contentsToRootView() to map the coordinates of a node in a frame to the coordinates in the main frame, instead of calculating by only the offset. Reviewed by Pavel Feldman. Test: inspector/elements/highlight-node-scaled.html * inspector/DOMNodeHighlighter.cpp: 2012-04-19 Yury Semikhatsky Web Inspector / Heap snapshots: "Objects allocated ..." views are empty https://bugs.webkit.org/show_bug.cgi?id=84347 Pass parsed maxJSObjectId value to the profile header constructor. Reviewed by Pavel Feldman. * inspector/front-end/ProfilesPanel.js: (WebInspector.ProfileHeader): (WebInspector.ProfilesPanel.prototype.setRecordingProfile): (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot): (WebInspector.ProfilerDispatcher.prototype.addProfileHeader): 2012-04-19 Brady Eidson and https://bugs.webkit.org/show_bug.cgi?id=84360 StorageThread should have an autorelease pool in place for Cocoa clients Reviewed by Eric Carlson. No new tests. (Not practical to test this with current tools) * storage/StorageThread.cpp: (WebCore::StorageThread::threadEntryPoint): Include an AutodrainedPool and cycle it after each message. 2012-04-19 Luke Macpherson Fix potential null pointer dereference in RuleSet::addRulesFromSheet(). https://bugs.webkit.org/show_bug.cgi?id=84258 Reviewed by Andreas Kling. Fix variable that is dereferenced without null check here, but checked in code above and below. No new test / code cleanup from coverity analysis. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::collectMatchingRulesForList): 2012-04-19 Yury Semikhatsky Web Inspector: exception when hovering object while paused https://bugs.webkit.org/show_bug.cgi?id=84358 Added missing boolean parameter to the call site of evaluate method on call frame. Reviewed by Vsevolod Vlasov. * inspector/front-end/AdvancedSearchController.js: * inspector/front-end/DebuggerPresentationModel.js: annotated slectedCallFrame method so that closure compiler catches errors like in the bug report. (WebInspector.DebuggerPresentationModel.prototype.evaluateInSelectedCallFrame): * inspector/front-end/JavaScriptSourceFrame.js: (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover): 2012-04-19 Yury Semikhatsky Web Inspector: nodes are not removed from the summary view when switching between allocation ranges https://bugs.webkit.org/show_bug.cgi?id=84354 Clear all top level nodes not only those visible in the viewport when populating the constructors view with new content. Reviewed by Pavel Feldman. * inspector/front-end/HeapSnapshotDataGrids.js: (WebInspector.HeapSnapshotSortableDataGrid.prototype.dispose): (WebInspector.HeapSnapshotSortableDataGrid.prototype.topLevelNodes): (WebInspector.HeapSnapshotSortableDataGrid.prototype.changeNameFilter): (WebInspector.HeapSnapshotViewportDataGrid.prototype.topLevelNodes): (WebInspector.HeapSnapshotViewportDataGrid.prototype.removeTopLevelNodes): (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren): (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource): 2012-04-19 Sami Kyostila [chromium] Allow scrolling non-root layers in the compositor thread https://bugs.webkit.org/show_bug.cgi?id=73350 Reviewed by James Robinson. This patch enables scrolling child layers in the compositor thread. Scroll deltas are accumulated for each scrolled CCLayerImpl and synchronized to the main thread. If a layer has no room to scroll in a given direction, one of its ancestor layers is scrolled instead if possible. Added new webkit_unit_tests to verify scrolling behavior. * platform/graphics/chromium/ContentLayerChromium.cpp: (WebCore::ContentLayerChromium::scrollBy): (WebCore): * platform/graphics/chromium/ContentLayerChromium.h: (ContentLayerDelegate): (ContentLayerChromium): * platform/graphics/chromium/GraphicsLayerChromium.h: (WebCore::GraphicsLayerChromium::didScroll): * platform/graphics/chromium/LayerChromium.cpp: (WebCore::LayerChromium::setMaxScrollPosition): (WebCore): (WebCore::LayerChromium::pushPropertiesTo): * platform/graphics/chromium/LayerChromium.h: (LayerChromium): (WebCore::LayerChromium::maxScrollPosition): (WebCore::LayerChromium::scrollable): (WebCore::LayerChromium::scrollBy): * platform/graphics/chromium/cc/CCLayerImpl.cpp: (WebCore::CCLayerImpl::findLayerInSubtree): (WebCore): (WebCore::CCLayerImpl::tryScroll): * platform/graphics/chromium/cc/CCLayerImpl.h: (CCLayerImpl): * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: (WebCore::findLayerById): (WebCore): (WebCore::findFirstScrollableLayer): (WebCore::CCLayerTreeHost::applyScrollAndScale): * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl): (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation): (WebCore::CCLayerTreeHostImpl::contentSize): (WebCore): (WebCore::CCLayerTreeHostImpl::calculateVisibleLayers): (WebCore::CCLayerTreeHostImpl::prepareToDraw): (WebCore::findRootScrollLayer): (WebCore::findScrollLayerForContentLayer): (WebCore::CCLayerTreeHostImpl::setRootLayer): (WebCore::adjustScrollsForPageScaleChange): (WebCore::applyPageScaleDeltaToScrollLayers): (WebCore::CCLayerTreeHostImpl::setPageScaleFactorAndLimits): (WebCore::CCLayerTreeHostImpl::setPageScaleDelta): (WebCore::CCLayerTreeHostImpl::updateMaxScrollPosition): (WebCore::CCLayerTreeHostImpl::scrollBegin): (WebCore::CCLayerTreeHostImpl::scrollBy): (WebCore::CCLayerTreeHostImpl::scrollEnd): (WebCore::CCLayerTreeHostImpl::pinchGestureUpdate): (WebCore::CCLayerTreeHostImpl::computePinchZoomDeltas): (WebCore::CCLayerTreeHostImpl::makeScrollAndScaleSet): (WebCore::collectScrollDeltas): (WebCore::CCLayerTreeHostImpl::processScrollDeltas): (WebCore::CCLayerTreeHostImpl::animatePageScale): * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: (WebCore::CCLayerTreeHostImpl::rootScrollLayer): (CCLayerTreeHostImpl): (LayerGeometry): 2012-04-19 Yury Semikhatsky Web Inspector: make constructors and diff heap snapshot data grids use viewport https://bugs.webkit.org/show_bug.cgi?id=84348 HeapSnapshotViewportDataGrid is introduced which allows to add to the tbody only visible rows. HeapSnapshotConstructorsDataGrid and HeapSnapshotDiffDataGrid are inherited from this class which makes them operate well on large amounts of nodes. Reviewed by Pavel Feldman. * inspector/front-end/DataGrid.js: (WebInspector.DataGridNode.prototype.nodeHeight): (WebInspector.DataGridNode.prototype._attach): * inspector/front-end/HeapSnapshotDataGrids.js: (WebInspector.HeapSnapshotSortableDataGrid): (WebInspector.HeapSnapshotSortableDataGrid.prototype.nodesForNameFilter): (WebInspector.HeapSnapshotSortableDataGrid.prototype.changeNameFilter): (WebInspector.HeapSnapshotSortableDataGrid.prototype._performSorting): (WebInspector.HeapSnapshotSortableDataGrid.prototype.appendChildAfterSorting): (WebInspector.HeapSnapshotSortableDataGrid.prototype.updateVisibleNodes): (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingEnter): (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingLeave): (WebInspector.HeapSnapshotViewportDataGrid): (WebInspector.HeapSnapshotViewportDataGrid.prototype.nodesForNameFilter): (WebInspector.HeapSnapshotViewportDataGrid.prototype.appendChildAfterSorting): (WebInspector.HeapSnapshotViewportDataGrid.prototype.updateVisibleNodes): (WebInspector.HeapSnapshotViewportDataGrid.prototype.appendTopLevelNode): (WebInspector.HeapSnapshotViewportDataGrid.prototype._addPaddingRows): (WebInspector.HeapSnapshotViewportDataGrid.prototype._removePaddingRows): (WebInspector.HeapSnapshotViewportDataGrid.prototype.onResize): (WebInspector.HeapSnapshotViewportDataGrid.prototype._onScroll): (WebInspector.HeapSnapshotPaddingNode): (WebInspector.HeapSnapshotPaddingNode.prototype.setHeight): (WebInspector.HeapSnapshotPaddingNode.prototype.removeFromTable): (WebInspector.HeapSnapshotConstructorsDataGrid): (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren): (WebInspector.HeapSnapshotDiffDataGrid): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived.addNodeIfNonZeroDiff): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren): * inspector/front-end/HeapSnapshotGridNodes.js: (WebInspector.HeapSnapshotGridNode): (WebInspector.HeapSnapshotGridNode.prototype.collapse): (WebInspector.HeapSnapshotGridNode.prototype.sort.afterSort.afterPopulate): (WebInspector.HeapSnapshotGridNode.prototype.sort.afterSort): (WebInspector.HeapSnapshotGridNode.prototype.sort): (WebInspector.HeapSnapshotObjectNode.prototype._createChildNode): (WebInspector.HeapSnapshotObjectNode.prototype.comparator): (WebInspector.HeapSnapshotInstanceNode.prototype._createChildNode): (WebInspector.HeapSnapshotInstanceNode.prototype.comparator): (WebInspector.HeapSnapshotConstructorNode): (WebInspector.HeapSnapshotConstructorNode.prototype._createChildNode): (WebInspector.HeapSnapshotConstructorNode.prototype.comparator): (WebInspector.HeapSnapshotDiffNode): (WebInspector.HeapSnapshotDiffNode.prototype._createChildNode): (WebInspector.HeapSnapshotDiffNode.prototype.comparator): (WebInspector.HeapSnapshotDominatorObjectNode.prototype._createChildNode): (WebInspector.HeapSnapshotDominatorObjectNode.prototype.comparator): * inspector/front-end/ShowMoreDataGridNode.js: (WebInspector.ShowMoreDataGridNode.prototype.createCells): (WebInspector.ShowMoreDataGridNode.prototype.nodeHeight): 2012-04-19 Kentaro Hara Unreviewed, rolling out r114421. http://trac.webkit.org/changeset/114421 https://bugs.webkit.org/show_bug.cgi?id=84103 Chromium crash * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateFunctionCallString): (NativeToJSValue): * bindings/scripts/test/V8/V8TestEventConstructor.cpp: (WebCore::TestEventConstructorV8Internal::attr1AttrGetter): (WebCore::TestEventConstructorV8Internal::attr2AttrGetter): * bindings/scripts/test/V8/V8TestInterface.cpp: (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter): (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter): * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter): (WebCore::TestObjV8Internal::stringAttrAttrGetter): (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter): (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter): (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter): (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter): (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter): (WebCore::TestObjV8Internal::hashAttrGetter): (WebCore::TestObjV8Internal::conditionalMethod1Callback): * bindings/v8/V8Binding.cpp: (WebCore::getElementStringAttr): * bindings/v8/V8Binding.h: (WebCore::v8ExternalString): (WebCore::v8String): (WebCore::v8StringOrNull): (WebCore::v8StringOrUndefined): (WebCore::v8StringOrFalse): 2012-04-19 Sheriff Bot Unreviewed, rolling out r114626. http://trac.webkit.org/changeset/114626 https://bugs.webkit.org/show_bug.cgi?id=84349 caused new assertions in debug builds (Requested by smfr_ on #webkit). * inspector/InspectorResourceAgent.cpp: (WebCore::InspectorResourceAgent::didReceiveData): * inspector/NetworkResourcesData.cpp: (WebCore::NetworkResourcesData::responseReceived): * inspector/NetworkResourcesData.h: (ResourceData): (NetworkResourcesData): * inspector/front-end/RequestView.js: (WebInspector.RequestView.hasTextContent): 2012-04-19 Mark Pilgrim [Chromium] Call mimeRegistry directly https://bugs.webkit.org/show_bug.cgi?id=84334 Reviewed by Kentaro Hara. Part of a refactoring series. See tracking bug 82948. * platform/chromium/MIMETypeRegistryChromium.cpp: (WebCore::MIMETypeRegistry::getMIMETypeForExtension): (WebCore::MIMETypeRegistry::getWellKnownMIMETypeForExtension): (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType): (WebCore::MIMETypeRegistry::isSupportedImageMIMEType): (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType): (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType): * platform/chromium/PlatformSupport.h: (PlatformSupport): 2012-04-19 Victor Carbune Display a TextTrackCue when snap-to-lines flag is not set https://bugs.webkit.org/show_bug.cgi?id=79750 Reviewed by Eric Carlson. Support for positioning of a cue on top of the video element when snap-to-lines is not set. Test: media/track/track-cue-rendering-snap-to-lines-not-set.html * css/mediaControls.css: (video::-webkit-media-text-track-container): Marked the container as flexible box in order to use all the available space on top of the controls. (video::-webkit-media-text-track-background): Added background default settings. (video::-webkit-media-text-track-display): Added default position. * html/shadow/MediaControlElements.cpp: (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Updated comments. * html/track/TextTrackCue.cpp: (WebCore): (WebCore::TextTrackCue::TextTrackCue): Updated constructor to calculate the computed line position. (WebCore::TextTrackCue::setLine): Updated call to calculate the computed line position. (WebCore::TextTrackCue::setPosition): (WebCore::TextTrackCue::calculateComputedLinePosition): Partial calculation of the computated line position. (WebCore::TextTrackCue::calculateDisplayParameters): Updated display parameter computations required by the spec. (WebCore::TextTrackCue::getDisplayTree): Updated positioning attributes when snap-to-lines is not set. Added extra anonymous box for background, because setting position:absolute on the display tree determines the background to cover the whole block, not just inline. (WebCore::TextTrackCue::getPositionCoordinates): Determine coordinates as required by the spec. * html/track/TextTrackCue.h: (TextTrackCue): 2012-04-19 Pavel Feldman Web Inspector: introduce styles panel as an experiment https://bugs.webkit.org/show_bug.cgi?id=84331 Reviewed by Vsevolod Vlasov. This change introduces new "Styles" panel that looks like the "Scripts" one, but operates stylesheets. This is happening under the experimental flag. * English.lproj/localizedStrings.js: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/compile-front-end.py: * inspector/front-end/Panel.js: (WebInspector.Panel.prototype.showAnchorLocation): * inspector/front-end/ResourceView.js: (WebInspector.EditableResourceSourceFrame.prototype.didEditContent): * inspector/front-end/ScriptsNavigator.js: (WebInspector.ScriptsNavigatorController.prototype._navigatorOverlayWasShown): * inspector/front-end/ScriptsPanel.js: * inspector/front-end/Settings.js: (WebInspector.ExperimentsSettings): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype._clearLineHighlight): * inspector/front-end/StylesPanel.js: Added. (WebInspector.StylesPanel): (WebInspector.StylesPanel.prototype.wasShown): (WebInspector.StylesPanel.prototype._initialize): (WebInspector.StylesPanel.prototype._populateResourceTree.populateFrame): (WebInspector.StylesPanel.prototype._populateResourceTree): (WebInspector.StylesPanel.prototype._resourceAdded): (WebInspector.StylesPanel.prototype._reset): (WebInspector.StylesPanel.prototype._cachedResourcesLoaded): (WebInspector.StylesPanel.prototype.get toolbarItemLabel): (WebInspector.StylesPanel.prototype.viewForFile.get if): (WebInspector.StylesPanel.prototype.viewForFile): (WebInspector.StylesPanel.prototype._textEdited): (WebInspector.StylesPanel.prototype._scriptSelected): (WebInspector.StylesPanel.prototype._showFile): (WebInspector.StylesPanel.prototype.canShowAnchorLocation): * inspector/front-end/StylesSidebarPane.js: (WebInspector.StylePropertiesSection): (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode): * inspector/front-end/TabbedEditorContainer.js: (WebInspector.TabbedEditorContainer): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: * inspector/front-end/inspector.js: (WebInspector._createPanels): (WebInspector._showAnchorLocationInPanel): * inspector/front-end/scriptsPanel.css: * inspector/front-end/splitView.css: (.sidebar-overlay): 2012-04-19 Vsevolod Vlasov Follow up to r114632: build fix. * inspector/InspectorDebuggerAgent.cpp: (WebCore): (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame): 2012-04-19 Mark Pilgrim [Chromium] Call sampleGamepads directly https://bugs.webkit.org/show_bug.cgi?id=84339 Reviewed by Kentaro Hara. Part of a refactoring series. See tracking bug 82948. * platform/chromium/GamepadsChromium.cpp: (WebCore::sampleGamepads): * platform/chromium/PlatformSupport.h: (WebCore): (PlatformSupport): 2012-04-19 Vsevolod Vlasov Web Inspector: x-frame security errors logged when typing in the console are annoying. https://bugs.webkit.org/show_bug.cgi?id=81970 Reviewed by Pavel Feldman. Parameter DoNotPauseOnExceptions in Runtime.evaluate() renamed to DoNotPauseOnExceptionsAndMuteConsole. Added this parameter to Runtime.callFunctionOn() and passed true in all call sites. Added this parameter to Debugger.evaluateOnCallFrame(). Added a flag to console that mutes all messages unless they have ConsoleAPI message source. This flag is now temporarily set from InspectorRuntimeAgent and InspectorDebuggerAgent for certain injected source calls. * inspector/Inspector.json: * inspector/InspectorDebuggerAgent.cpp: (WebCore::asBool): (WebCore): (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame): * inspector/InspectorDebuggerAgent.h: (InspectorDebuggerAgent): * inspector/InspectorRuntimeAgent.cpp: (WebCore): (WebCore::setPauseOnExceptionsState): (WebCore::InspectorRuntimeAgent::evaluate): (WebCore::InspectorRuntimeAgent::callFunctionOn): (WebCore::InspectorRuntimeAgent::getProperties): * inspector/InspectorRuntimeAgent.h: (InspectorRuntimeAgent): * inspector/PageDebuggerAgent.cpp: (WebCore::PageDebuggerAgent::muteConsole): (WebCore): (WebCore::PageDebuggerAgent::unmuteConsole): * inspector/PageDebuggerAgent.h: (PageDebuggerAgent): * inspector/PageRuntimeAgent.cpp: (WebCore::PageRuntimeAgent::muteConsole): (WebCore): (WebCore::PageRuntimeAgent::unmuteConsole): * inspector/PageRuntimeAgent.h: (PageRuntimeAgent): * inspector/WorkerDebuggerAgent.cpp: (WebCore::WorkerDebuggerAgent::muteConsole): (WebCore): (WebCore::WorkerDebuggerAgent::unmuteConsole): * inspector/WorkerDebuggerAgent.h: (WorkerDebuggerAgent): * inspector/WorkerRuntimeAgent.cpp: (WebCore::WorkerRuntimeAgent::muteConsole): (WebCore): (WebCore::WorkerRuntimeAgent::unmuteConsole): * inspector/WorkerRuntimeAgent.h: (WorkerRuntimeAgent): * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype.evalInInspectedWindow): * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel.prototype.evaluateInSelectedCallFrame): (WebInspector.PresentationCallFrame.prototype.evaluate): * inspector/front-end/RemoteObject.js: (WebInspector.RemoteObject.prototype.setPropertyValue): (WebInspector.RemoteObject.prototype.callFunction): (WebInspector.RemoteObject.prototype.callFunctionJSON): * inspector/front-end/WorkerManager.js: * page/Console.cpp: (WebCore::Console::addMessage): (WebCore::Console::warn): (WebCore): (WebCore::Console::mute): (WebCore::Console::unmute): * page/Console.h: (Console): 2012-04-19 Sheriff Bot Unreviewed, rolling out r114628. http://trac.webkit.org/changeset/114628 https://bugs.webkit.org/show_bug.cgi?id=84341 Breaks EFL and GTK builds (Requested by pfeldman on #webkit). * inspector/Inspector.json: * inspector/InspectorDebuggerAgent.cpp: (WebCore): (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame): * inspector/InspectorDebuggerAgent.h: (InspectorDebuggerAgent): * inspector/InspectorRuntimeAgent.cpp: (WebCore::InspectorRuntimeAgent::evaluate): (WebCore::InspectorRuntimeAgent::callFunctionOn): (WebCore::InspectorRuntimeAgent::getProperties): * inspector/InspectorRuntimeAgent.h: (InspectorRuntimeAgent): * inspector/PageDebuggerAgent.cpp: * inspector/PageDebuggerAgent.h: (PageDebuggerAgent): * inspector/PageRuntimeAgent.cpp: * inspector/PageRuntimeAgent.h: (PageRuntimeAgent): * inspector/WorkerDebuggerAgent.cpp: * inspector/WorkerDebuggerAgent.h: (WorkerDebuggerAgent): * inspector/WorkerRuntimeAgent.cpp: * inspector/WorkerRuntimeAgent.h: (WorkerRuntimeAgent): * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype.evalInInspectedWindow): * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel.prototype.evaluateInSelectedCallFrame): (WebInspector.PresentationCallFrame.prototype.evaluate): * inspector/front-end/RemoteObject.js: (WebInspector.RemoteObject.prototype.setPropertyValue): (WebInspector.RemoteObject.prototype.callFunction): (WebInspector.RemoteObject.prototype.callFunctionJSON): * inspector/front-end/WorkerManager.js: * page/Console.cpp: (WebCore): (WebCore::Console::addMessage): (WebCore::Console::warn): * page/Console.h: (Console): 2012-04-19 Vsevolod Vlasov Web Inspector: x-frame security errors logged when typing in the console are annoying. https://bugs.webkit.org/show_bug.cgi?id=81970 Reviewed by Pavel Feldman. Parameter DoNotPauseOnExceptions in Runtime.evaluate() renamed to DoNotPauseOnExceptionsAndMuteConsole. Added this parameter to Runtime.callFunctionOn() and passed true in all call sites. Added this parameter to Debugger.evaluateOnCallFrame(). Added a flag to console that mutes all messages unless they have ConsoleAPI message source. This flag is now temporarily set from InspectorRuntimeAgent and InspectorDebuggerAgent for certain injected source calls. * inspector/Inspector.json: * inspector/InspectorDebuggerAgent.cpp: (WebCore::asBool): (WebCore): (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame): * inspector/InspectorDebuggerAgent.h: (InspectorDebuggerAgent): * inspector/InspectorRuntimeAgent.cpp: (WebCore): (WebCore::setPauseOnExceptionsState): (WebCore::InspectorRuntimeAgent::evaluate): (WebCore::InspectorRuntimeAgent::callFunctionOn): (WebCore::InspectorRuntimeAgent::getProperties): * inspector/InspectorRuntimeAgent.h: (InspectorRuntimeAgent): * inspector/PageDebuggerAgent.cpp: (WebCore::PageDebuggerAgent::muteConsole): (WebCore): (WebCore::PageDebuggerAgent::unmuteConsole): * inspector/PageDebuggerAgent.h: (PageDebuggerAgent): * inspector/PageRuntimeAgent.cpp: (WebCore::PageRuntimeAgent::muteConsole): (WebCore): (WebCore::PageRuntimeAgent::unmuteConsole): * inspector/PageRuntimeAgent.h: (PageRuntimeAgent): * inspector/WorkerDebuggerAgent.cpp: (WebCore::WorkerDebuggerAgent::muteConsole): (WebCore): (WebCore::WorkerDebuggerAgent::unmuteConsole): * inspector/WorkerDebuggerAgent.h: (WorkerDebuggerAgent): * inspector/WorkerRuntimeAgent.cpp: (WebCore::WorkerRuntimeAgent::muteConsole): (WebCore): (WebCore::WorkerRuntimeAgent::unmuteConsole): * inspector/WorkerRuntimeAgent.h: (WorkerRuntimeAgent): * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype.evalInInspectedWindow): * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel.prototype.evaluateInSelectedCallFrame): (WebInspector.PresentationCallFrame.prototype.evaluate): * inspector/front-end/RemoteObject.js: (WebInspector.RemoteObject.prototype.setPropertyValue): (WebInspector.RemoteObject.prototype.callFunction): (WebInspector.RemoteObject.prototype.callFunctionJSON): * inspector/front-end/WorkerManager.js: * page/Console.cpp: (WebCore::Console::addMessage): (WebCore::Console::warn): (WebCore): (WebCore::Console::mute): (WebCore::Console::unmute): * page/Console.h: (Console): 2012-04-19 No'am Rosenthal [Qt] Fix Qt-Mac build after libxml patch https://bugs.webkit.org/show_bug.cgi?id=84313 Use direct include/library paths instead of PKGCONFIG when on Mac. Reviewed by Simon Hausmann. No new tests, build fix. * WebCore.pri: 2012-04-18 Vsevolod Vlasov Web Inspector: No response body available for cached resource requests with error status codes. https://bugs.webkit.org/show_bug.cgi?id=84265 Reviewed by Pavel Feldman. InspectorResourceAgent now saves failed subresource request response body in its cache. Saved data is shown on front-end. Test: http/tests/inspector/network/network-image-404.html * inspector/InspectorResourceAgent.cpp: (WebCore::InspectorResourceAgent::didReceiveData): * inspector/NetworkResourcesData.cpp: (WebCore::NetworkResourcesData::responseReceived): (WebCore::NetworkResourcesData::httpStatusCode): (WebCore): * inspector/NetworkResourcesData.h: (WebCore::NetworkResourcesData::ResourceData::httpStatusCode): (WebCore::NetworkResourcesData::ResourceData::setHTTPStatusCode): (ResourceData): (NetworkResourcesData): * inspector/front-end/RequestView.js: (WebInspector.RequestView.hasTextContent): 2012-04-19 Pavel Feldman Web Inspector: reuse ParsedUrl in the UISourceCode https://bugs.webkit.org/show_bug.cgi?id=84326 Reviewed by Yury Semikhatsky. Migrated UISourceCode to ParsedURL, moved the displayName logic into its only client: TabbedEditorContainer. * inspector/front-end/CompilerScriptMapping.js: (WebInspector.SourceMapParser.prototype._canonicalizeURL): * inspector/front-end/FilteredItemSelectionDialog.js: (WebInspector.OpenResourceDialog.filterOutEmptyURLs): (WebInspector.OpenResourceDialog.compareFunction): (WebInspector.OpenResourceDialog): (WebInspector.OpenResourceDialog.prototype.itemTitleAt): (WebInspector.OpenResourceDialog.prototype.itemKeyAt): * inspector/front-end/ResourceUtils.js: (WebInspector.ParsedURL): * inspector/front-end/ScriptsNavigator.js: (WebInspector.ScriptsNavigator.prototype._getOrCreateFolderTreeElement): (WebInspector.NavigatorFolderTreeElement): * inspector/front-end/TabbedEditorContainer.js: (WebInspector.TabbedEditorContainer.prototype._titleForFile): * inspector/front-end/UISourceCode.js: (WebInspector.UISourceCode): (WebInspector.UISourceCode.prototype.get parsedURL): 2012-04-19 Xingnan Wang Optimize for DARWIN in DirectConvolver::process() https://bugs.webkit.org/show_bug.cgi?id=80256 Reviewed by Chris Rogers. * platform/audio/DirectConvolver.cpp: (WebCore::DirectConvolver::process): 2012-04-18 Noel Gordon [CG] ImageBuffer::toDataURL: Remove alpha stuffing loop when encoding to JPEG https://bugs.webkit.org/show_bug.cgi?id=84319 Reviewed by Eric Seidel. No change in behavior. Covered by existing canvas 2d and 3d tests: canvas/philip/tests/toDataURL.jpeg.alpha.html fast/canvas/webgl/premultiplyalpha-test.html * platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::toDataURL): Remove the alpha stuffing loop and instead, make JPEG encoder ignore the alpha channel (kCGImageAlphaNoneSkipLast). 2012-04-18 Emil A Eklund Remove unnecessary rounding/conversions in RenderBoxModelObject https://bugs.webkit.org/show_bug.cgi?id=84288 Reviewed by Eric Seidel. No new tests, no change in functionality. * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::paintBoxShadow): Remove unnecessary pixelSnapping logic and casts in paintBoxShadow as shadow rects are now int based. 2012-04-18 Jason Liu [BlackBerry] Parsed Cookie's m_hasDefaultDomain is not needed. https://bugs.webkit.org/show_bug.cgi?id=82830 Reviewed by George Staikos. RFC 2965 3.2.2 Domain = value If an explicitly specified value does not start with a dot, the user agent supplies a leading dot. 3.3.1 Domain Defaults to the effective request-host. (Note that because there is no dot at the beginning of effective request-host, the default Domain can only domain-match itself.) The first char can show the difference even though it is from the cookie database. But m_hasDefaultDomain is set to false if the cookie is from database although the domain is host as a default value. So m_hasDefaultDomain sometimes is wrong. In sum, we shouldn't use m_hasDefaultDomain. Test: http/tests/security/cookies/cookies-wrong-domain-rejected.php * platform/blackberry/CookieManager.cpp: (WebCore::CookieManager::shouldRejectForSecurityReason): * platform/blackberry/CookieParser.cpp: (WebCore::CookieParser::parseOneCookie): * platform/blackberry/ParsedCookie.cpp: (WebCore::ParsedCookie::ParsedCookie): * platform/blackberry/ParsedCookie.h: (ParsedCookie): 2012-04-18 Adrienne Walker [chromium] Consolidate adjustTextRenderMode copypasta into Skia context https://bugs.webkit.org/show_bug.cgi?id=83840 Reviewed by James Robinson. The same logic to decide when to make text use LCD rendering is copy and pasted in all the different font classes. It seems like this should live in a single place. * platform/graphics/harfbuzz/FontHarfBuzz.cpp: (WebCore::Font::drawGlyphs): (WebCore::Font::drawComplexText): * platform/graphics/skia/FontSkia.cpp: (WebCore::Font::drawGlyphs): * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::adjustTextRenderMode): (WebCore): (WebCore::PlatformContextSkia::couldUseLCDRenderedText): * platform/graphics/skia/PlatformContextSkia.h: (PlatformContextSkia): * platform/graphics/skia/SkiaFontWin.cpp: (WebCore::setupPaintForFont): 2012-04-18 Hironori Bono Split SpellChecker::didCheck() to SpellChecker::didCheckSucceeded() and SpellChecker::didCheckCanceled() https://bugs.webkit.org/show_bug.cgi?id=83748 Reviewed by Ryosuke Niwa. The current SpellChecker::didCheck() does not delete existing markers. It causes a problem that it leaves misspelled markers when a spellchecker client finishes checking text successfully. This change splits this function to didCheckSucceeded() and didCheckCanceled() so the SpellChecker class can delete existing markers when its client finishes checking text successfully. (We do not have to erase existing markers when the client needs to cancel a text-check request.) Test: platform/chromium/editing/spelling/delete-misspelled-word.html * WebCore.exp.in: Replaced SpellChecker::didCheck with SpellChecker::didCheckSucceeded. * editing/SpellChecker.cpp: (WebCore::SpellChecker::didCheckSucceeded): Added. (WebCore): (WebCore::SpellChecker::didCheckCanceled): Added. * editing/SpellChecker.h: (SpellChecker): Added didCheckSucceeded and didCheckCanceled. Also changed didCheck to a private function. 2012-04-16 James Robinson [chromium] Convert WebPluginContainerImpl over to use WebExternalTextureLayer https://bugs.webkit.org/show_bug.cgi?id=84120 Reviewed by Adrienne Walker. This renames PluginLayerChromium -> TextureLayerChromium since it is now used only as the implementation of WebExternalTextureLayer and cleans it up slightly. * WebCore.gypi: * platform/graphics/chromium/TextureLayerChromium.cpp: Renamed from Source/WebCore/platform/graphics/chromium/PluginLayerChromium.cpp. (WebCore): (WebCore::TextureLayerChromium::create): (WebCore::TextureLayerChromium::TextureLayerChromium): (WebCore::TextureLayerChromium::createCCLayerImpl): (WebCore::TextureLayerChromium::drawsContent): (WebCore::TextureLayerChromium::setTextureId): (WebCore::TextureLayerChromium::setFlipped): (WebCore::TextureLayerChromium::setUVRect): (WebCore::TextureLayerChromium::setIOSurfaceProperties): (WebCore::TextureLayerChromium::pushPropertiesTo): * platform/graphics/chromium/TextureLayerChromium.h: Renamed from Source/WebCore/platform/graphics/chromium/PluginLayerChromium.h. (WebCore): (TextureLayerChromium): (WebCore::TextureLayerChromium::flipped): (WebCore::TextureLayerChromium::uvRect): 2012-04-18 Raymond Toy Expose attack, release as DynamicsCompressorNode's attributes. https://bugs.webkit.org/show_bug.cgi?id=81221 Reviewed by Chris Rogers. * Modules/webaudio/DynamicsCompressorNode.cpp: (WebCore::DynamicsCompressorNode::DynamicsCompressorNode): (WebCore::DynamicsCompressorNode::process): * Modules/webaudio/DynamicsCompressorNode.h: (WebCore::DynamicsCompressorNode::attack): (WebCore::DynamicsCompressorNode::releaseTime): (DynamicsCompressorNode): * Modules/webaudio/DynamicsCompressorNode.idl: Add attack and release attributes. * bindings/scripts/CodeGeneratorObjC.pm: (SkipAttribute): Skip release() (GenerateHeader): Call SkipAttribute for getters/setters. * platform/audio/DynamicsCompressor.h: (DynamicsCompressor): 2012-04-18 Dana Jansens [chromium] Simplify occlusion tracker API by passing layer iterator data https://bugs.webkit.org/show_bug.cgi?id=84088 Reviewed by Adrienne Walker. Previously three methods lived in the API and you needed to call the appropriate method (with different amounts of data) depending on what the current layer iterator was representing. This makes usage of the occlusion tracker simpler to read and harder to mess up, by just passing in the layer iterator at each step of the iteration process. Covered by existing tests. * platform/graphics/chromium/cc/CCLayerIterator.h: (WebCore): (CCLayerIteratorPosition): (CCLayerIterator): (WebCore::CCLayerIterator::operator const CCLayerIteratorPosition): * platform/graphics/chromium/cc/CCLayerTilingData.cpp: (WebCore::CCLayerTilingData::opaqueRegionInLayerRect): * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: (WebCore::CCLayerTreeHost::paintLayerContents): * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: (WebCore::CCLayerTreeHostImpl::calculateRenderPasses): * platform/graphics/chromium/cc/CCOcclusionTracker.cpp: (WebCore::::enterLayer): (WebCore): (WebCore::::leaveLayer): * platform/graphics/chromium/cc/CCOcclusionTracker.h: (CCOcclusionTrackerBase): 2012-04-18 James Robinson [chromium] Add canBeginFrame state to CCSchedulerStateMachine to suppress initialization before our surface is available https://bugs.webkit.org/show_bug.cgi?id=84301 Reviewed by Adrienne Walker. If our composited surface isn't ready yet, then the compositor may initialize in a state where the first makeContextCurrent() fails. This adds a new state to the scheduler that we can use to suppress initialization until we get notified that the surface is ready. I'll add the plumbing for actually notifying in a follow-up. Updated CCSchedulerTest / CCSchedulerStateMachineTest unit tests. * platform/graphics/chromium/cc/CCScheduler.cpp: (WebCore::CCScheduler::setCanBeginFrame): (WebCore): * platform/graphics/chromium/cc/CCScheduler.h: (CCScheduler): * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp: (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine): (WebCore::CCSchedulerStateMachine::nextAction): * platform/graphics/chromium/cc/CCSchedulerStateMachine.h: (WebCore::CCSchedulerStateMachine::setCanBeginFrame): (CCSchedulerStateMachine): * platform/graphics/chromium/cc/CCThreadProxy.cpp: (WebCore::CCThreadProxy::initializeImplOnImplThread): 2012-04-18 David Reveman [Chromium] Solid color layers should respect opacity value. https://bugs.webkit.org/show_bug.cgi?id=84197 Reviewed by Adrienne Walker. Fold opacity into shader color for solid color layers. Test: CCSolidColorLayerImplTest.verifyCorrectOpacityInQuad * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::drawSolidColorQuad): 2012-04-18 Mark Pilgrim [Chromium] Call prefetchDNS directly https://bugs.webkit.org/show_bug.cgi?id=84262 Reviewed by Kentaro Hara. Part of a series, see tracking bug 82948. * platform/chromium/PlatformSupport.h: (PlatformSupport): * platform/network/chromium/DNSChromium.cpp: (WebCore::prefetchDNS): 2012-04-18 Julien Chaffraix REGRESSION(102040): Auto-table layout with percent width doesn't shrink-to-fit content a cell with colspan https://bugs.webkit.org/show_bug.cgi?id=84260 Reviewed by Ojan Vafai. Tests: fast/table/td-width-fifty-percent-regression-expected.html fast/table/td-width-fifty-percent-regression.html * rendering/AutoTableLayout.cpp: (WebCore::AutoTableLayout::calcEffectiveLogicalWidth): As we are spreading the cell's min / max logical width, we should be updating them. This prevents the following logic getting confused and allocating more than needed. 2012-04-18 Justin Schuh Win8 builds usually fail due to cygwin rebasing https://bugs.webkit.org/show_bug.cgi?id=84274 Reviewed by Dirk Pranke. Cygwin can fail to spawn children if the DLL is rebased. This happens frequently enough on Windows 8 that we should retry on failure. No new tests. No behavior changed. * bindings/scripts/preprocessor.pm: (applyPreprocessor): 2012-04-18 Levi Weintraub Add explicit template instantiation to chromium/PopupListBox.cpp to prepare for sub-pixel layout https://bugs.webkit.org/show_bug.cgi?id=84264 Reviewed by Eric Seidel. Explicitly instantiating integer max and min templates to fix compilation in Chromium. We intentionally truncated these values in platform code, which matches earlier behavior. See https://trac.webkit.org/wiki/LayoutUnit for details. No new tests. No change in behavior. * platform/chromium/PopupListBox.cpp: (WebCore::PopupListBox::paintRow): (WebCore::PopupListBox::layout): 2012-04-18 Luke Macpherson Prevent potential null pointer dereference in CSSStyleSelector::applyProperty(). https://bugs.webkit.org/show_bug.cgi?id=84267 Reviewed by Kentaro Hara. No new tests / code cleanup found via static analysis. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::collectMatchingRulesForList): 2012-04-18 Luke Macpherson Prevent switch case fallthrough in StylePropertySet::getPropertyValue(). https://bugs.webkit.org/show_bug.cgi?id=84266 Reviewed by Kentaro Hara. No new tests / code cleanup found by static analysis. * css/StylePropertySet.cpp: (WebCore::StylePropertySet::getPropertyValue): 2012-04-18 Andreas Kling CSSValuePool: Make numeric value caches fixed-size arrays. Reviewed by Antti Koivisto. Change the numeric CSSPrimitiveValue caches in CSSValuePool from HashMaps to fixed-size arrays of RefPtrs. This is more space efficient and doesn't incur the cost of a hash lookup every time a numeric CSSPrimitiveValue is needed. We retain the limit of caching only values between 0-255 for now. * css/CSSValuePool.cpp: (WebCore::CSSValuePool::CSSValuePool): (WebCore::CSSValuePool::createValue): * css/CSSValuePool.h: (CSSValuePool): 2012-04-18 Dana Jansens [chromium] Rename overdraw histograms so we can use field trials in histograms.xml https://bugs.webkit.org/show_bug.cgi?id=83500 Reviewed by James Robinson. * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp: (WebCore::CCOverdrawMetrics::recordMetricsInternal): 2012-04-18 David Reveman [Chromium] Solid color shader should use premultiplied alpha. https://bugs.webkit.org/show_bug.cgi?id=84215 Reviewed by Adrienne Walker. For efficiency and consistency, expect premultiplied alpha in solid color shader. * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::drawDebugBorderQuad): (WebCore::LayerRendererChromium::drawSolidColorQuad): * platform/graphics/chromium/ShaderChromium.cpp: (WebCore::FragmentShaderColor::getShaderString): 2012-04-18 Alexey Proskuryakov [WK2] Sandbox violations prevent attaching files to gmail messages https://bugs.webkit.org/show_bug.cgi?id=84263 Reviewed by Oliver Hunt. * page/DragActions.h: Removed the newly added upload action. We cannot know if or when an upload is going to happen - a drop even listener can always get a reference to a File object, and upload it with XMLHttpRequest. * page/DragController.cpp: (WebCore::DragController::concludeEditDrag): Removed a separate willPerformDragDestinationAction call for upload action - ther is nothing we'd want to only do when dropping on a file upload button. 2012-04-18 Levi Weintraub GraphicsContextCG's roundToDevicePixels should round even when there's no transform https://bugs.webkit.org/show_bug.cgi?id=84191 Reviewed by Eric Seidel. When painting with the identify transform, the roundToDevicePixels function in GraphicsContextCG does an early return that simply returns the FloatRect that was passed in. This proved to be a problem in sub-pixel layout, as we wouldn't adjust the paint rect for text underline, and it could end up being more than one pixel wide. Adding a roundedIntRect method on FloatRect for the simple short-circuit case. No new tests. No change in behavior before switching to sub-pixel layout. * platform/graphics/FloatRect.cpp: (WebCore::roundedIntRect): * platform/graphics/FloatRect.h: * platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::roundToDevicePixels): 2012-04-18 Keishi Hattori [chromium] Turn on ENABLE_DATALIST for chromium https://bugs.webkit.org/show_bug.cgi?id=84118 Reviewed by Kent Tamura. * html/HTMLDataListElement.cpp: Touched to avoid build issues. No code change. * html/HTMLDataListElement.h: Ditto. * html/HTMLInputElement.cpp: Ditto. * html/HTMLInputElement.h: Ditto. 2012-04-18 Allan Sandfeld Jensen [Qt] WheelEventQt.cpp should be deleted. https://bugs.webkit.org/show_bug.cgi?id=84237 Reviewed by Simon Hausmann. * platform/qt/WheelEventQt.cpp: Removed. 2012-04-18 Emil A Eklund Unreviewed. Adding FIXME comment to FractionalLayoutUnit explaining the lack of size_t operators. * platform/FractionalLayoutUnit.h: (FractionalLayoutUnit): 2012-04-18 Benjamin Poulain Remove m_subclassData from JSArray, move the attribute to subclass as needed https://bugs.webkit.org/show_bug.cgi?id=84249 Reviewed by Geoffrey Garen. * bridge/runtime_array.cpp: (JSC::RuntimeArray::RuntimeArray): (JSC::RuntimeArray::finishCreation): * bridge/runtime_array.h: (JSC::RuntimeArray::getLength): (JSC::RuntimeArray::getConcreteArray): (RuntimeArray): 2012-04-18 Luiz Agostini matchMedia() MediaQueryList not updating https://bugs.webkit.org/show_bug.cgi?id=75903 Reviewed by Antti Koivisto. Test: fast/media/media-query-list-08.html Viewport related MediaQueryList listeners were not triggered and the value of matches were not updated if the document's style selector were not affected by viewport changes. The new method evaluateMediaQueries() is now called by FrameView instead of styleSelectorChanged() if the style selector is not affected by viewport changes. * dom/Document.cpp: (WebCore::Document::evaluateMediaQueries): (WebCore): (WebCore::Document::styleSelectorChanged): * dom/Document.h: (Document): * page/FrameView.cpp: (WebCore::FrameView::layout): 2012-04-18 Emil A Eklund Use explicit casts for size_t to unsigned conversion https://bugs.webkit.org/show_bug.cgi?id=83602 Reviewed by Eric Seidel. No new tests, no change in functinality. Not all platforms have implicit casts from size_t to unsigned and we can't add size_t versions of the operators to FractionalLayoutUnit for all platforms as it would conflict with the unsigned versions of same. Change support methods to take unsigned instead of size_t and use explicit casts when multiplying or dividing a FractionalLayoutUnit with a size_t and the other way around. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::adjustForColumns): * rendering/RenderFlexibleBox.cpp: (WebCore::initialPackingOffset): (WebCore::packingSpaceBetweenChildren): (WebCore::initialLinePackingOffset): (WebCore::linePackingSpaceBetweenChildren): (WebCore::RenderFlexibleBox::packFlexLines): * rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::layout): 2012-04-18 Pavel Feldman Web Inspector: [Chromium] Module's require injects scripts before the debug id is set to the context. https://bugs.webkit.org/show_bug.cgi?id=84166 Re-applying r114497. * bindings/v8/V8IsolatedContext.cpp: (WebCore::setInjectedScriptContextDebugId): (WebCore): (WebCore::V8IsolatedContext::V8IsolatedContext): * bindings/v8/V8Proxy.cpp: (WebCore::V8Proxy::evaluateInIsolatedWorld): * bindings/v8/V8Proxy.h: (V8Proxy): 2012-04-18 Pavel Feldman Web Inspector: extract script navigator overlay logic into the scripts navigator controller. https://bugs.webkit.org/show_bug.cgi?id=84244 Reviewed by Vsevolod Vlasov. Overlay logic is well separable from the scripts panel and does not belong there. Extracting it into a separate class. * inspector/front-end/ScriptsNavigator.js: (WebInspector.ScriptsNavigatorController.prototype.wasShown): (WebInspector.ScriptsNavigatorController.prototype._createNavigatorControlButton): (WebInspector.ScriptsNavigatorController.prototype._escDownWhileNavigatorOverlayOpen): (WebInspector.ScriptsNavigatorController.prototype._toggleNavigator): (WebInspector.ScriptsNavigatorController.prototype._hidePinnedNavigator): (WebInspector.ScriptsNavigatorController.prototype.set _pinNavigator): (WebInspector.ScriptsNavigatorController.prototype.set showNavigatorOverlay): (WebInspector.ScriptsNavigatorController.prototype.hideNavigatorOverlay): (WebInspector.ScriptsNavigatorController.prototype._navigatorOverlayWasShown): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.wasShown): (WebInspector.ScriptsPanel.prototype._editorClosed): (WebInspector.ScriptsPanel.prototype._editorSelected): (WebInspector.ScriptsPanel.prototype._scriptSelected): 2012-04-18 Alexandru Chiculita Unreviewed, trying to fix QT build. It was using a FilterEffectRenderer::prepare that changed to allocateBackingStoreIfNeeded in 114529. * platform/graphics/texmap/TextureMapperImageBuffer.cpp: (WebCore::BitmapTextureImageBuffer::applyFilters): 2012-04-18 Pavel Feldman Web Inspector: extract script navigator overlay logic into the scripts navigator controller. https://bugs.webkit.org/show_bug.cgi?id=84244 Reviewed by Vsevolod Vlasov. Overlay logic is well separable from the scripts panel and does not belong there. Extracting it into a separate class. * inspector/front-end/ScriptsNavigator.js: (WebInspector.ScriptsNavigatorController.prototype.wasShown): (WebInspector.ScriptsNavigatorController.prototype._createNavigatorControlButton): (WebInspector.ScriptsNavigatorController.prototype._escDownWhileNavigatorOverlayOpen): (WebInspector.ScriptsNavigatorController.prototype._toggleNavigator): (WebInspector.ScriptsNavigatorController.prototype._hidePinnedNavigator): (WebInspector.ScriptsNavigatorController.prototype.set _pinNavigator): (WebInspector.ScriptsNavigatorController.prototype.set showNavigatorOverlay): (WebInspector.ScriptsNavigatorController.prototype.hideNavigatorOverlay): (WebInspector.ScriptsNavigatorController.prototype._navigatorOverlayWasShown): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.wasShown): (WebInspector.ScriptsPanel.prototype._editorClosed): (WebInspector.ScriptsPanel.prototype._editorSelected): (WebInspector.ScriptsPanel.prototype._scriptSelected): 2012-04-18 Sheriff Bot Unreviewed, rolling out r114497. http://trac.webkit.org/changeset/114497 https://bugs.webkit.org/show_bug.cgi?id=84253 Broke compile on Win, including stdio did not help (Requested by dimich on #webkit). * bindings/v8/V8IsolatedContext.cpp: (WebCore::V8IsolatedContext::V8IsolatedContext): * bindings/v8/V8Proxy.cpp: (WebCore::V8Proxy::evaluateInIsolatedWorld): (WebCore::V8Proxy::setInjectedScriptContextDebugId): (WebCore): * bindings/v8/V8Proxy.h: (V8Proxy): 2012-04-18 Alexandru Chiculita [CSS Filters] Drop-shadow and blur can avoid using full source image https://bugs.webkit.org/show_bug.cgi?id=81263 Reviewed by Dean Jackson. Instead of using the full bounding box of the RenderLayer we now compute the exact rectangle that is needed to compute filter inside the dirty rectangle on screen. That's easy to calculate by reversing the filter outsets. Even if the element is completely offscreen, but its shadow is in the viewport, we can still compute the source rectangle that needs to be drawn in order to update the shadow correctly. No new tests, this change doesn't have visible results and the functionality should already be covered by previous filter tests. * rendering/FilterEffectRenderer.cpp: (WebCore::FilterEffectRenderer::FilterEffectRenderer): (WebCore::FilterEffectRenderer::build): Save the outsets of the filters, so that we can use them in computeSourceImageRectForDirtyRect. (WebCore::FilterEffectRenderer::updateBackingStoreRect): Only allocate a new source image if the size of the source rectangle changed. (WebCore::FilterEffectRenderer::allocateBackingStoreIfNeeded): There's no need to call clearIntermediateResults() in this function. We do that after the filter is computed. (WebCore::FilterEffectRenderer::computeSourceImageRectForDirtyRect): (WebCore): (WebCore::FilterEffectRendererHelper::prepareFilterEffect): (WebCore::FilterEffectRendererHelper::beginFilterEffect): * rendering/FilterEffectRenderer.h: (FilterEffectRendererHelper): (WebCore::FilterEffectRendererHelper::repaintRect): (FilterEffectRenderer): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintLayerContents): 2012-04-18 Dominik Röttsches [EFL][DRT] @font-face support fails on EFL https://bugs.webkit.org/show_bug.cgi?id=83264 Reviewed by Dimitri Glazkov. STORE_FONT_CUSTOM_PLATFORM_DATA was not defined for EFL. Fixing that by removing a long standing FIXME with the intention to turn the whitelist for this switch into a blacklist. * loader/cache/CachedFont.cpp: 2012-04-18 Levi Weintraub Convert ShadowData and DropShadowFilterOperation to use IntPoint https://bugs.webkit.org/show_bug.cgi?id=84098 Reviewed by Eric Seidel. Shadows do not flow with the page, so sub-pixel layout doesn't actually offer any benefit that couldn't have been attained before that conversion. With that in mind, this patch reverts drop shadow offsets to integers, but also cleans up the code by switching the x/y location pair to be an IntPoint. No new tests. No change in behavior. * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::valueForFilter): * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::collectMatchingRulesForList): * css/SVGCSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applySVGProperty): * page/animation/AnimationBase.cpp: (WebCore::blendFunc): (WebCore::shadowForBlending): * platform/animation/AnimationUtilities.h: (WebCore::blend): New blend function that operates on IntPoints. (WebCore): * platform/chromium/support/WebFilterOperations.cpp: (WebKit::WebDropShadowFilterOperation): * platform/graphics/filters/FilterOperation.cpp: (WebCore::DropShadowFilterOperation::blend): * platform/graphics/filters/FilterOperation.h: (WebCore::DropShadowFilterOperation::clone): (WebCore::DropShadowFilterOperation::x): (WebCore::DropShadowFilterOperation::y): (WebCore::DropShadowFilterOperation::location): Preserved the comment about lengths. (WebCore::DropShadowFilterOperation::operator==): (WebCore::DropShadowFilterOperation::DropShadowFilterOperation): (DropShadowFilterOperation): * rendering/RenderBoxModelObject.cpp: (WebCore::areaCastingShadowInHole): Reverted to integers since this operates on the IntRect from a RoundedRect. (WebCore::RenderBoxModelObject::paintBoxShadow): Reduced the complexity and unnecessary conversion between LayoutUnits and integers by using all integers after we calculate the pixel-snapped RoundedRect that we use for painting. * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::getShadowExtent): (WebCore::RenderStyle::getShadowHorizontalExtent): (WebCore::RenderStyle::getShadowVerticalExtent): * rendering/style/ShadowData.cpp: (WebCore::ShadowData::ShadowData): (WebCore::ShadowData::operator==): (WebCore::calculateShadowExtent): (WebCore::ShadowData::adjustRectForShadow): * rendering/style/ShadowData.h: (WebCore::ShadowData::ShadowData): (WebCore::ShadowData::x): (WebCore::ShadowData::y): (WebCore::ShadowData::location): (ShadowData): 2012-04-17 Kentaro Hara [V8] Add an optional Isolate argument to wrap() https://bugs.webkit.org/show_bug.cgi?id=84202 Reviewed by Nate Chapin. The final objective is to pass Isolate around in V8 bindings. This patch adds an optional Isolate argument to wrap(). After rewriting all wrap() callers so that they pass Isolate to wrap(), I'll make the Isolate argument non-optional. No tests. No change in behavior. * bindings/scripts/CodeGeneratorV8.pm: Modified as described above. (GenerateHeader): * bindings/v8/custom/V8DocumentCustom.cpp: Ditto. (WebCore::toV8): * bindings/v8/custom/V8HTMLDocumentCustom.cpp: Ditto. (WebCore::toV8): * bindings/v8/custom/V8NodeCustom.cpp: Ditto. (WebCore::toV8Slow): * bindings/v8/custom/V8SVGDocumentCustom.cpp: Ditto. (WebCore::toV8): * dom/make_names.pl: Ditto. (printWrapperFactoryCppFile): * bindings/scripts/test/V8/V8Float64Array.h: Updated run-bindings-tests results. (V8Float64Array): (WebCore::V8Float64Array::wrap): * bindings/scripts/test/V8/V8TestActiveDOMObject.h: (V8TestActiveDOMObject): (WebCore::V8TestActiveDOMObject::wrap): (WebCore::toV8): * bindings/scripts/test/V8/V8TestCustomNamedGetter.h: (V8TestCustomNamedGetter): (WebCore::V8TestCustomNamedGetter::wrap): (WebCore::toV8): * bindings/scripts/test/V8/V8TestEventConstructor.h: (V8TestEventConstructor): (WebCore::V8TestEventConstructor::wrap): (WebCore::toV8): * bindings/scripts/test/V8/V8TestEventTarget.h: (V8TestEventTarget): (WebCore::V8TestEventTarget::wrap): (WebCore::toV8): * bindings/scripts/test/V8/V8TestInterface.h: (V8TestInterface): (WebCore::V8TestInterface::wrap): (WebCore::toV8): * bindings/scripts/test/V8/V8TestMediaQueryListListener.h: (V8TestMediaQueryListListener): (WebCore::V8TestMediaQueryListListener::wrap): (WebCore::toV8): * bindings/scripts/test/V8/V8TestNamedConstructor.h: (V8TestNamedConstructor): (WebCore::V8TestNamedConstructor::wrap): (WebCore::toV8): * bindings/scripts/test/V8/V8TestNode.h: (V8TestNode): (WebCore::V8TestNode::wrap): (WebCore::toV8): * bindings/scripts/test/V8/V8TestObj.h: (V8TestObj): (WebCore::V8TestObj::wrap): (WebCore::toV8): * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h: (V8TestSerializedScriptValueInterface): (WebCore::V8TestSerializedScriptValueInterface::wrap): (WebCore::toV8): 2012-04-18 Alexandru Chiculita [CSS Filters] Do not use clipping rect when calculating the bounds of a layer https://bugs.webkit.org/show_bug.cgi?id=83960 Reviewed by Simon Fraser. The local clip rect should not be used when calculating the bounds of a filter area. Otherwise drop-shadow might not know about the pixels outside the clipping rectangle, even though the actual shadow might be inside it. No new tests added in this patch, but this patch fixes two existing tests that fail. LayoutTests/css3/filters/filter-repaint-shadow-clipped.html LayoutTests/css3/filters/filter-repaint-shadow-rotated.html * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintLayerContents): (WebCore::RenderLayer::calculateLayerBounds): * rendering/RenderLayer.h: 2012-04-18 Mark Pilgrim Followup to "Call incrementStatsCounter directly" https://bugs.webkit.org/show_bug.cgi?id=83109 Reviewed by Kentaro Hara. Now that incrementStatsCounter has been moved from PlatformSupport.h to Platform.h, we need to be able to call it directly from WebCore/bindings/v8/v8Proxy.h (for the INC_STATS macro). That means we need a new StatsCounter class in WebCore/platform/ and an implementation in WebCore/platform/chromium/StatsCounterChromium.cpp. Other ports are welcome to implement their own stats counters if they wish. This pattern was based on the HistogramSupport/HistogramSupportChromium classes. * CMakeLists.txt: * GNUmakefile.list.am: * Target.pri: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/v8/V8Proxy.h: * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp: (WebCore::V8DedicatedWorkerContext::postMessageCallback): (WebCore::V8DedicatedWorkerContext::webkitPostMessageCallback): * bindings/v8/custom/V8NotificationCenterCustom.cpp: (WebCore::V8NotificationCenter::createHTMLNotificationCallback): (WebCore::V8NotificationCenter::createNotificationCallback): (WebCore::V8NotificationCenter::requestPermissionCallback): * bindings/v8/custom/V8WorkerContextCustom.cpp: (WebCore::V8WorkerContext::importScriptsCallback): (WebCore::V8WorkerContext::setTimeoutCallback): (WebCore::V8WorkerContext::setIntervalCallback): * platform/StatsCounter.cpp: Added. (WebCore): (WebCore::StatsCounter::incrementStatsCounter): * platform/StatsCounter.h: Added. (WebCore): (StatsCounter): * platform/chromium/StatsCounterChromium.cpp: Added. (WebCore): (WebCore::StatsCounter::incrementStatsCounter): 2012-04-18 Alexander Pavlov [Chromium] REGRESSION: Popup shrinks because of autocomplete https://bugs.webkit.org/show_bug.cgi?id=84139 http://code.google.com/p/chromium/issues/detail?id=123432 Do not update the window rect on the wrong client but instead return the popup widget's new screen coordinates from the refresh() method. Reviewed by Kent Tamura. * platform/chromium/PopupContainer.cpp: (WebCore::PopupContainer::refresh): * platform/chromium/PopupContainer.h: (PopupContainer): 2012-04-18 Simon Fraser ASSERT when a layer with a foreground layer is in 'paint into ancestor' mode https://bugs.webkit.org/show_bug.cgi?id=84221 Reviewed by Dean Jackson. When a RenderLayerBacking doesn't require its own backing store, and is in "paintIntoCompositingAncestor" mode, we would assert when trying to paint its m_foregroundLayer if it had one (because of a negative z-index child). The fix is to set the 'drawsContent' state on the m_foregroundLayer as well as m_graphicsLayer. Test: compositing/backing/no-backing-foreground-layer.html * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateDrawsContent): 2012-04-18 Yury Semikhatsky Web Inspector: DataGrid should use explicit root node https://bugs.webkit.org/show_bug.cgi?id=84240 DataGrid now has an explicit root node. All children are added/removed to that node. Reviewed by Pavel Feldman. * inspector/front-end/ApplicationCacheItemsView.js: (WebInspector.ApplicationCacheItemsView.prototype._createDataGrid): (WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid): * inspector/front-end/CSSSelectorProfileView.js: (WebInspector.CSSSelectorProfileView): (WebInspector.CSSSelectorProfileView.prototype.rebuildGridItems): (WebInspector.CSSSelectorProfileView.prototype.refreshData): * inspector/front-end/CookieItemsView.js: (WebInspector.SimpleCookiesTable): (WebInspector.SimpleCookiesTable.prototype.setCookies): * inspector/front-end/CookiesTable.js: (WebInspector.CookiesTable): (WebInspector.CookiesTable.prototype._rebuildTable): * inspector/front-end/DOMStorageItemsView.js: (WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageEntries): * inspector/front-end/DataGrid.js: (WebInspector.DataGrid): (WebInspector.DataGrid.createSortableDataGrid.sortDataGrid): (WebInspector.DataGrid.createSortableDataGrid): (WebInspector.DataGrid.prototype.setRootNode): (WebInspector.DataGrid.prototype.rootNode): (WebInspector.DataGrid.prototype.autoSizeColumns): (WebInspector.DataGrid.prototype._enumerateChildren): (WebInspector.DataGrid.prototype._keyDown): (WebInspector.DataGrid.prototype._contextMenuInDataTable): (WebInspector.DataGridNode.prototype.get revealed): (WebInspector.DataGridNode.prototype.get depth): (WebInspector.DataGridNode.prototype.appendChild): (WebInspector.DataGridNode.prototype.insertChild): (WebInspector.DataGridNode.prototype.removeChild): (WebInspector.DataGridNode.prototype.removeChildren): (WebInspector.DataGridNode.prototype.collapse): (WebInspector.DataGridNode.prototype.expand): (WebInspector.DataGridNode.prototype.reveal): (WebInspector.DataGridNode.prototype.revealAndSelect): (WebInspector.DataGridNode.prototype.traverseNextNode): (WebInspector.DataGridNode.prototype.traversePreviousNode): * inspector/front-end/HeapSnapshotDataGrids.js: (WebInspector.HeapSnapshotSortableDataGrid): (WebInspector.HeapSnapshotSortableDataGrid.prototype.dispose): (WebInspector.HeapSnapshotSortableDataGrid.prototype.changeNameFilter): (WebInspector.HeapSnapshotSortableDataGrid.prototype.updateVisibleNodes): (WebInspector.HeapSnapshotSortableDataGrid.prototype._performSorting): (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute): (WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource): (WebInspector.HeapSnapshotContainmentDataGrid.prototype.sortingChanged): (WebInspector.HeapSnapshotRetainmentDataGrid.prototype.reset): (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren): (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived.addNodeIfNonZeroDiff): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren): (WebInspector.HeapSnapshotDominatorsDataGrid.prototype._defaultPopulateCount.25.setDataSource): (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.sortingChanged): * inspector/front-end/HeapSnapshotGridNodes.js: (WebInspector.HeapSnapshotGenericObjectNode): * inspector/front-end/HeapSnapshotView.js: (WebInspector.HeapSnapshotView.prototype.performSearch): (WebInspector.HeapSnapshotView.prototype.refreshVisibleData): * inspector/front-end/IndexedDBViews.js: (WebInspector.IDBDataView.prototype._createDataGrid): (WebInspector.IDBDataView.prototype._updateData.callback): (WebInspector.IDBDataView.prototype._updateData): (WebInspector.IDBDataView.prototype.clear): * inspector/front-end/NetworkPanel.js: (WebInspector.NetworkLogView.prototype._createTable): (WebInspector.NetworkLogView.prototype.refresh): (WebInspector.NetworkLogView.prototype._reset): * inspector/front-end/ProfileDataGridTree.js: (WebInspector.ProfileDataGridNode.prototype.insertChild): (WebInspector.ProfileDataGridNode.prototype.removeChild): (WebInspector.ProfileDataGridNode.prototype.removeChildren): * inspector/front-end/ProfileView.js: (WebInspector.CPUProfileView.prototype.refresh): * inspector/front-end/treeoutline.js: 2012-04-18 Vineet Chaudhary Add PassThis=* to support the callbacks which requires to pass "this" value. https://bugs.webkit.org/show_bug.cgi?id=84232 Reviewed by Kentaro Hara. Adding PassThisToCallback=XXX to attributes will be useful for the callbacks which requires to pass "this". This will help to identify the type(XXX) of "this" value in codegenerator. Tests: bindings/scripts/test/TestCallback.idl * bindings/scripts/CodeGeneratorJS.pm: (GenerateCallbackImplementation): Modified codegenerator to support [PassThisToCallback] * bindings/scripts/CodeGeneratorV8.pm: (GenerateCallbackImplementation): Ditto. * bindings/scripts/IDLAttributes.txt: Added PassThisToCallback=* * bindings/scripts/test/CPP/WebDOMTestCallback.cpp: Modofied results from run-bindings-tests. (WebDOMTestCallback::callbackWithBoolean): (WebDOMTestCallback::callbackRequiresThisToPass): * bindings/scripts/test/CPP/WebDOMTestCallback.h: Ditto. (WebDOMTestCallback): * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp: Ditto. (webkit_dom_test_callback_callback_with_boolean): (webkit_dom_test_callback_callback_requires_this_to_pass): * bindings/scripts/test/GObject/WebKitDOMTestCallback.h: Ditto. * bindings/scripts/test/JS/JSTestCallback.cpp: Ditto. (WebCore::JSTestCallback::callbackWithBoolean): (WebCore): (WebCore::JSTestCallback::callbackRequiresThisToPass): * bindings/scripts/test/JS/JSTestCallback.h: Ditto. (JSTestCallback): * bindings/scripts/test/ObjC/DOMTestCallback.h: Ditto. * bindings/scripts/test/ObjC/DOMTestCallback.mm: Ditto. (-[DOMTestCallback callbackWithBoolean:]): (-[DOMTestCallback callbackRequiresThisToPass:thisClassParam:]): * bindings/scripts/test/TestCallback.idl: Added test to verify generated code. * bindings/scripts/test/V8/V8TestCallback.cpp: Ditto. (WebCore::V8TestCallback::callbackWithBoolean): (WebCore): (WebCore::V8TestCallback::callbackRequiresThisToPass): * bindings/scripts/test/V8/V8TestCallback.h: Ditto. (V8TestCallback): 2012-04-18 'Pavel Feldman' Not reviewed: fixing Chromium win compilation. * bindings/v8/V8IsolatedContext.cpp: 2012-04-18 Luke Macpherson Remove unnecessary variable reassignment in CSSParser::parseImageSet(). https://bugs.webkit.org/show_bug.cgi?id=84204 Reviewed by Kentaro Hara. Code calls next and then current instead of reusing the result of next. No new tests / no functionality changed. * css/CSSParser.cpp: (WebCore::CSSParser::parseImageSet): 2012-04-18 Jason Liu [BlackBerry] HTTP GET header has a "Cookie" when refreshing a page after cookies have been cleared. https://bugs.webkit.org/show_bug.cgi?id=84223 Reviewed by George Staikos. Webkit uses the old ResourceRequest when refreshing. Its cookies' header isn't removed after clicking "clear cookies" button. We need to set cookies for this request again. We must click "clear button" to test, so have to write a manual test case. Test: ManualTests/blackberry/clear-cookie-refresh.php * platform/network/blackberry/ResourceRequestBlackBerry.cpp: (WebCore::ResourceRequest::initializePlatformRequest): 2012-04-17 Pavel Feldman Web Inspector: [Chromium] Module's require injects scripts before the debug id is set to the context. https://bugs.webkit.org/show_bug.cgi?id=84166 Reviewed by Yury Semikhatsky. V8IsolatedContext was getting debug id assigned post-construction. At the same time, it was compiling all its module scripts within the constructor. As a result, scripts ended up in the main world's list. * bindings/v8/V8IsolatedContext.cpp: (WebCore::setInjectedScriptContextDebugId): (WebCore): (WebCore::V8IsolatedContext::V8IsolatedContext): * bindings/v8/V8Proxy.cpp: (WebCore::V8Proxy::evaluateInIsolatedWorld): * bindings/v8/V8Proxy.h: (V8Proxy): 2012-04-17 Pavel Feldman Web Inspector: document.open removes the documentElement, but does not clear the elements panel. https://bugs.webkit.org/show_bug.cgi?id=84179 Reviewed by Yury Semikhatsky. Perform total update upon modifications of the document node. Test: inspector/elements/delete-from-document.html * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::didRemoveDOMNode): * inspector/front-end/ElementsTreeOutline.js: 2012-04-18 Max Feil [BlackBerry] Tab awareness for HTML5 concurrent audio https://bugs.webkit.org/show_bug.cgi?id=82930 Support for concurrent HTML5 audio improvements being made in the platform library, which need to be aware of tabs and tab visibility. PR96004. Reviewed by George Staikos. Test: media/audio-concurrent-supported.html * platform/blackberry/PageClientBlackBerry.h: * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp: (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): (WebCore::MediaPlayerPrivate::showErrorDialog): (WebCore::MediaPlayerPrivate::isTabVisible): (WebCore): * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h: (MediaPlayerPrivate): 2012-04-18 Noel Gordon [CG] ImageBuffer: check getPremultipliedImageData() error return https://bugs.webkit.org/show_bug.cgi?id=84022 Reviewed by Eric Seidel. ImageBuffer::getPremultipliedImageData() can fail. toDataURL() should check for a failure return, and return "data:," if so. No new tests. Covered by existing toDataURL tests, in particular: canvas/philip/tests/toDataURL.jpeg.alpha.html * platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::toDataURL): Rename |arr| variable to premultipliedData and return "data:," if premultipliedData is empty. Clean up whitespace and a comment. 2012-04-17 Rachel Blum Skia OOM error when upscaling small subsets of images by large quantities https://bugs.webkit.org/show_bug.cgi?id=84225 Reviewed by David Levin. Tested with manual tests. * platform/graphics/skia/NativeImageSkia.cpp: (WebCore::NativeImageSkia::shouldCacheResampling): 2012-04-17 MORITA Hajime ShadowRoot shouldn't be adopted by any Document. https://bugs.webkit.org/show_bug.cgi?id=84127 Reviewed by Dimitri Glazkov. ShadowRoot cannot cannot be removed from its host, which means ShadowRoot cannot be adopted by any Document directly because the adoptNode() tries to remove it from its parent but it doesn't make sense for ShadowRoot. This change adds a guard to check such a case. Test: fast/dom/shadow/adopt-node-with-shadow-root.html * dom/Document.cpp: (WebCore::Document::adoptNode): 2012-04-17 John Bauman [chromium] Ensure RateLimiter waits for Swapbuffers completion https://bugs.webkit.org/show_bug.cgi?id=83649 Reviewed by James Robinson. We were waiting only on the canvas context, which with the new GPU scheduling was causing the RateLimiter not to ratelimit enough. We need to insert no-op commands in the compositor context, so that we'll wait for the canvas context and SwapBuffers as well. * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::doNoOp): (WebCore): * platform/graphics/chromium/LayerRendererChromium.h: (LayerRendererChromium): * platform/graphics/chromium/RateLimiter.cpp: (WebCore::RateLimiter::create): (WebCore::RateLimiter::RateLimiter): (WebCore::RateLimiter::rateLimitContext): * platform/graphics/chromium/RateLimiter.h: (RateLimiterClient): (WebCore): (RateLimiter): * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: (WebCore::CCLayerTreeHost::startRateLimiter): (WebCore::CCLayerTreeHost::rateLimit): (WebCore): * platform/graphics/chromium/cc/CCLayerTreeHost.h: (CCLayerTreeHost): * platform/graphics/chromium/cc/CCProxy.h: (CCProxy): * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp: (WebCore::CCSingleThreadProxy::forceNoOpCommand): (WebCore): * platform/graphics/chromium/cc/CCSingleThreadProxy.h: (CCSingleThreadProxy): * platform/graphics/chromium/cc/CCThreadProxy.cpp: (WebCore::CCThreadProxy::forceNoOpCommand): (WebCore): (WebCore::CCThreadProxy::forceNoOpCommandOnImplThread): * platform/graphics/chromium/cc/CCThreadProxy.h: (CCThreadProxy): 2012-04-17 Andreas Kling CSSValuePool: Made identifier value cache a fixed-size array. Reviewed by Antti Koivisto. Change the identifier CSSPrimitiveValue cache in CSSValuePool from a HashMap to a fixed-size array of RefPtrs. We have ~700 values total, so this is quite space efficient now that the CSSValuePool is globally shared. More importantly it avoids a hash lookup every time we need an identifier value. * css/CSSValuePool.h: * css/CSSValuePool.cpp: (WebCore::CSSValuePool::createIdentifierValue): 2012-04-17 Antoine Labour [Chromium] Clean up texture ids on the impl side when losing the context https://bugs.webkit.org/show_bug.cgi?id=84122 Reviewed by James Robinson. Tested by CCLayerTreeHostImplTest.dontUseOldResourcesAfterLostContext. * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp: (WebCore::CCTextureLayerImpl::didLoseContext): * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp: (WebCore::CCTiledLayerImpl::didLoseContext): (WebCore): * platform/graphics/chromium/cc/CCTiledLayerImpl.h: (CCTiledLayerImpl): * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp: (WebCore::CCVideoLayerImpl::didLoseContext): (WebCore): * platform/graphics/chromium/cc/CCVideoLayerImpl.h: (CCVideoLayerImpl): 2012-04-17 Emil A Eklund Change RenderThemeChromiumSkia paint methods to use pixel snapping https://bugs.webkit.org/show_bug.cgi?id=84175 Reviewed by Eric Seidel. No new tests, no change in functionality. Change RenderThemeChromiumSkia to use subpixel types and pixel snap values just before painting. * rendering/RenderThemeChromiumSkia.cpp: (WebCore::RenderThemeChromiumSkia::convertToPaintingRect): (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton): (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration): (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton): * rendering/RenderThemeChromiumSkia.h: 2012-04-17 Levi Weintraub Clean up outstanding LayoutUnit misuse in WebCore https://bugs.webkit.org/show_bug.cgi?id=84209 Reviewed by Eric Seidel. Small changes to a handful of files to prepare trunk for FractionalLayoutUnits. For more details, see https://trac.webkit.org/wiki/LayoutUnit No new tests. No change in behavior. * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): minimumValueForLength preserves sub-pixel precision, so we should avoid unnecessarily using integers. * platform/graphics/FractionalLayoutPoint.h: (WebCore::FractionalLayoutPoint::FractionalLayoutPoint): Adding an explicit constructor from FractionalLayoutSizes. This mirrors a method in IntPoint. * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::paintBorder): The rects that change come from roundedRects, which are already pixel-snapped. * rendering/RenderBoxModelObject.h: Removing a comment that is no longer applicable. * rendering/RenderTable.cpp: (WebCore::RenderTable::computeLogicalWidth): Since we layout tables using integers, we need to explicitly calculate the width to be integral as well to avoid pushing the next element over by a pixel that we won't later paint with our own box decorations. * rendering/RenderText.h: (RenderText): Correcting an unfortunate mismatch between in the return value of linesBoundingBox between the header and implementation. * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::getRoundedBorderFor): We were incorrectly not using the snapped border rect to pass to calcRadiiFor (which takes an IntRect). Correcting this. 2012-04-17 Luke Macpherson Ensure CSSParser member variables are initialized. https://bugs.webkit.org/show_bug.cgi?id=84205 Reviewed by Andreas Kling. No new tests / code cleanup only. * css/CSSParser.cpp: (WebCore::CSSParser::CSSParser): 2012-04-16 Alexandru Chiculita Regression(114172): Use after free in CustomFilterProgram::notifyClients https://bugs.webkit.org/show_bug.cgi?id=84000 Reviewed by Dean Jackson. The function returned early and the shaders didn't have a chance to be saved. Moving those two lines before the return false just to make sure that FilterEffectRenderer never adds itself as a client for a shader without keeping track of that. No new tests. The problem reproduces with existing tests. css3/filters/custom/custom-filter-property-computed-style.html css3/filters/custom/effect-custom-combined-missing.html * rendering/FilterEffectRenderer.cpp: (WebCore::FilterEffectRenderer::build): 2012-04-17 Alec Flett IndexedDB chooses wrong record on PREV_NO_DUPLICATE index cursor https://bugs.webkit.org/show_bug.cgi?id=60746 Reviewed by Ojan Vafai. When iterating backwards with PREV_NO_DUPLICATE, keep walking past the 'prev' key until it changes, then walk forward one time. This covers the object store and index cases. Test: storage/indexeddb/mozilla/index-prev-no-duplicate.html * Modules/indexeddb/IDBLevelDBBackingStore.cpp: (WebCore): 2012-04-17 Yi Shen Caret is not rendered properly inside an input element with text-indent https://bugs.webkit.org/show_bug.cgi?id=82688 Reviewed by Ryosuke Niwa. For an empty input element, there is no RenderText. Instead, RenderBlock::localCaretRect provides the caret position for rendering the caret in the empty input element. To get correct caret rect, textIndentOffset() should be used to adjust the caret's position. Test: editing/style/text-indent.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::localCaretRect): 2012-04-17 Filip Pizlo It should be possible to create an inheritorID for the global this object without crashing https://bugs.webkit.org/show_bug.cgi?id=84200 Reviewed by Oliver Hunt. No new tests, because the circumstances necessary to make this happen are rather hairy. * bindings/js/JSDOMWindowShell.h: (WebCore::JSDOMWindowShell::window): (WebCore::JSDOMWindowShell::setWindow): 2012-04-17 Luke Macpherson Make CSSParser::parseValue()'s handling of CSSPropertyCursor more obviously correct. https://bugs.webkit.org/show_bug.cgi?id=83544 Reviewed by Kentaro Hara. No new tests / code cleanup only. The code as it stands appears to be correct, but static analysis was concerned that value could become null. This patch adds a null check and ASSERT_NOT_REACHED() to make the code more obviously correct. * css/CSSParser.cpp: (WebCore::CSSParser::parseValue): 2012-04-17 David Reveman [Chromium] Add TextureUploader which allows us to use persistent GC3D state for texture uploads. https://bugs.webkit.org/show_bug.cgi?id=83972 Reviewed by James Robinson. Add TextureUploader class that allows us to add persistent GC3D state to the upload machinery. * WebCore.gypi: * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::initializeSharedObjects): (WebCore::LayerRendererChromium::cleanupSharedObjects): * platform/graphics/chromium/LayerRendererChromium.h: (WebCore::LayerRendererChromium::textureUploader): (LayerRendererChromium): * platform/graphics/chromium/TextureUploader.cpp: Added. (WebCore): (WebCore::AcceleratedTextureUploader::AcceleratedTextureUploader): (WebCore::AcceleratedTextureUploader::~AcceleratedTextureUploader): (WebCore::AcceleratedTextureUploader::uploadTexture): * platform/graphics/chromium/TextureUploader.h: Added. (WebCore): (TextureUploader): (WebCore::TextureUploader::~TextureUploader): (AcceleratedTextureUploader): (WebCore::AcceleratedTextureUploader::create): * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp: (WebCore::CCSingleThreadProxy::doCommit): * platform/graphics/chromium/cc/CCTextureUpdater.cpp: (WebCore::CCTextureUpdater::update): * platform/graphics/chromium/cc/CCTextureUpdater.h: (WebCore): (CCTextureUpdater): * platform/graphics/chromium/cc/CCThreadProxy.cpp: (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources): 2012-04-17 Luke Macpherson Clean up CSSParser::parseFillRepeat(). https://bugs.webkit.org/show_bug.cgi?id=83547 Reviewed by Kentaro Hara. Removed multiple unnecessary calls to m_valueList->current(). Restructured logic for parsing second value to make it clearer. No new tests / code cleanup only. * css/CSSParser.cpp: (WebCore::CSSParser::parseFillRepeat): 2012-04-17 Kentaro Hara [V8] Pass Isolate to toV8Slow() https://bugs.webkit.org/show_bug.cgi?id=84173 Reviewed by Nate Chapin. The final objective is to pass Isolate around in V8 bindings. This patch passes the Isolate to toV8Slow(). No tests. No change in behavior. * bindings/scripts/CodeGeneratorV8.pm: (GenerateHeader): * bindings/v8/custom/V8NodeCustom.cpp: (WebCore::toV8Slow): 2012-04-17 Julien Chaffraix Fix the ACCELERATED_COMPOSITING code to not expose RenderLayer outside rendering https://bugs.webkit.org/show_bug.cgi?id=83816 Reviewed by James Robinson. No change in behavior expected. This code adds several functions on RenderBoxModelObject to forward to the associated layer. This removes the RenderLayer dependencies at the call sites. Currently only RenderBoxModelObject can be hardware accelerated as we need a RenderLayer, this looks like the best place to put those new functions. * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::contentChanged): (WebCore::RenderBoxModelObject::hasAcceleratedCompositing): (WebCore::RenderBoxModelObject::startTransition): (WebCore::RenderBoxModelObject::transitionPaused): (WebCore::RenderBoxModelObject::transitionFinished): (WebCore::RenderBoxModelObject::startAnimation): (WebCore::RenderBoxModelObject::animationPaused): (WebCore::RenderBoxModelObject::animationFinished): (WebCore::RenderBoxModelObject::suspendAnimations): * rendering/RenderBoxModelObject.h: Added the previous functions to hide the layer need. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::hasAcceleratedCompositing): * rendering/RenderLayer.h: Removed the previous method as it was superseeded by the one on RenderBoxModelObject. Also moved the ContentChangeType enumaration. * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::contentChanged): * rendering/RenderLayerBacking.h: (RenderLayerBacking): Updated after the ContentChangeType enumaration move. * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::reset): (WebCore::HTMLCanvasElement::paintsIntoCanvasBuffer): * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::didDraw): * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::markContextChanged): (WebCore::WebGLRenderingContext::reshape): * page/animation/AnimationBase.cpp: (WebCore::AnimationBase::freezeAtTime): * page/animation/ImplicitAnimation.cpp: (WebCore::ImplicitAnimation::startAnimation): (WebCore::ImplicitAnimation::pauseAnimation): (WebCore::ImplicitAnimation::endAnimation): * page/animation/KeyframeAnimation.cpp: (WebCore::KeyframeAnimation::startAnimation): (WebCore::KeyframeAnimation::pauseAnimation): (WebCore::KeyframeAnimation::endAnimation): * rendering/RenderBox.cpp: (WebCore::RenderBox::imageChanged): * rendering/RenderImage.cpp: (WebCore::RenderImage::imageDimensionsChanged): (WebCore::RenderImage::notifyFinished): * rendering/RenderVideo.cpp: (WebCore::RenderVideo::updatePlayer): Updated all those call sites to use the new functions. Also removed unneeded RenderLayer.h include as we went. 2012-04-16 Andy Estes -webkit-mask-box-image does not draw when layer tree flattening is enabled https://bugs.webkit.org/show_bug.cgi?id=84111 Reviewed by Simon Fraser. No new tests since taking pixel test results with PaintBehaviorFlattenCompositingLayers set is not currently supported. tracks fixing this. When painting mask images, we should take the non-composited path if layers are being flattened. * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintMask): * rendering/RenderBox.cpp: (WebCore::RenderBox::paintMaskImages): 2012-04-17 Emil A Eklund Rollout r114404 as it broke a couple of chromium builds. * platform/FractionalLayoutUnit.h: (WebCore::FractionalLayoutUnit::FractionalLayoutUnit): (WebCore::FractionalLayoutUnit::isInBounds): (WebCore): 2012-04-17 Ben Murdoch `localStorage.setItem` can overwrite `localStorage` methods https://bugs.webkit.org/show_bug.cgi?id=30996 Update the JSC and V8 bindings such that if the name of the DOM Storage property being retrieved is a match for a property in the prototype, always return the prototype version. If there is a DOM Storage key of the same name, it can still be retrieved via the getItem method. This prevents storage methods from being accidentally hidden. This brings WebKit behavior in line with the de facto standard implemented by FireFox and IE. Reviewed by Kentaro Hara. Test: storage/domstorage/storage-functions-not-overwritten.html * bindings/js/JSStorageCustom.cpp: (WebCore::JSStorage::nameGetter): * bindings/v8/custom/V8StorageCustom.cpp: (WebCore::V8Storage::namedPropertyGetter): 2012-04-17 Emil A Eklund Fix Chromium/Windows build broken by r114404. * platform/FractionalLayoutUnit.h: 2012-04-17 Kentaro Hara [Performance][V8] Skip Isolate look-up to find StringCache https://bugs.webkit.org/show_bug.cgi?id=84103 Reviewed by Nate Chapin. This patch improves the performance of a lot of DOM attribute getters that return a string. - Improves the performance of Dromaeo/dom-attr.html(element.property) by 27.7%. - Improves the performance of Dromaeo/dom-attr.html(getAttribute) by 10.6%. - Improves the performance of div.id, div.className, div.nodeName, text.nodeValue, text.textContent by 12% -- 21%. The followings are the test results in my Linux desktop. Performance test: Dromaeo/dom-attr.html Total: 674.64runs/s -> 707.03runs/s (+ 4.8%) getAttribute: 1537.60runs/s -> 1700.20runs/s (+10.6%) element.property: 1389.00runs/s -> 1774.20runs/s (+27.7%) setAttribute: 538.88runs/s -> 548.87runs/s (+ 1.9%) element.property = value: 644.07runs/s -> 656.67runs/s (+ 2.0%) element.expando = value: 219.76runs/s -> 207.14runs/s (- 6.8%) element.expando: 578.77runs/s -> 554.67runs/s (- 4.2%) Performance test: https://bugs.webkit.org/attachment.cgi?id=137440 div.id: 30.70ns -> 26.70ns (+15%) div.className: 31.10ns -> 26.40ns (+18%) div.nodeName: 37.70ns -> 33.00ns (+14%) text.nodeValue: 31.40ns -> 25.90ns (+21%) text.textContent: 51.50ns -> 45.90ns (+12%) Previously V8 bindings need to look up an Isolate to find an Isolate-local StringCache. This patch skips the look-up by getting the Isolate from AccessorInfo.GetIsolate() or Arguments.GetIsolate(). No tests. No change in behavior. * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateFunctionCallString): (NativeToJSValue): * bindings/v8/V8Binding.cpp: (WebCore::getElementStringAttr): * bindings/v8/V8Binding.h: (WebCore::v8ExternalString): Make 'isolate' an optional argument. Ideally we want to make 'isolate' a non-optional argument, but it is difficult to rewrite all v8ExternalString() callers at a breath. We can rewrite them incrementally. (WebCore::v8String): Ditto. (WebCore::v8StringOrNull): Ditto. (WebCore::v8StringOrUndefined): Ditto. (WebCore::v8StringOrFalse): Ditto. * bindings/scripts/test/V8/V8TestEventConstructor.cpp: Updated run-bindings-tests results. (WebCore::TestEventConstructorV8Internal::attr1AttrGetter): (WebCore::TestEventConstructorV8Internal::attr2AttrGetter): * bindings/scripts/test/V8/V8TestInterface.cpp: (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter): (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter): * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter): (WebCore::TestObjV8Internal::stringAttrAttrGetter): (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter): (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter): (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter): (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter): (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter): (WebCore::TestObjV8Internal::hashAttrGetter): (WebCore::TestObjV8Internal::conditionalMethod1Callback): 2012-04-17 Chris Fleizach Crash in invalid index for _textMarkerForIndex https://bugs.webkit.org/show_bug.cgi?id=84104 Reviewed by Beth Dakin. Test: platform/mac/accessibility/textmarker-for-index-out-of-bounds-crash.html * accessibility/mac/WebAccessibilityObjectWrapper.mm: (-[WebAccessibilityObjectWrapper _textMarkerForIndex:]): 2012-04-17 Jer Noble HTML5 Video Full Screen button broken (looks like white square) https://bugs.webkit.org/show_bug.cgi?id=84101 Reviewed by Dan Bernstein. No new tests; updated platform results which were previously rebaselined. Use the correct CSS keyword for the -webkit-appearance of the full screen button. * css/mediaControls.css: (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button): 2012-04-17 Tom Sepez Framesniffing defense is too aggressive. https://bugs.webkit.org/show_bug.cgi?id=83721 Reviewed by James Robinson. The RenderLayer code currently propagates scroll position to parent frames without any cross-origin checks. This gives it a quick origin boundary check that is set by FrameLoader only when performing a fragment navigation. This allows us to safely relax the restriction on not scrolling at load time in FrameLoader since the safe thing will happen later on at scroll time. Test: http/tests/navigation/anchor-frames-same-origin.html * dom/Document.cpp: (WebCore::Document::findUnsafeParentScrollPropagationBoundary): * dom/Document.h: (Document): * loader/FrameLoader.cpp: (WebCore::FrameLoader::finishedParsing): (WebCore::FrameLoader::loadInSameDocument): (WebCore::FrameLoader::scrollToFragmentWithParentBoundary): * loader/FrameLoader.h: (FrameLoader): * page/FrameView.cpp: (WebCore::FrameView::FrameView): (WebCore::FrameView::reset): * page/FrameView.h: (WebCore::FrameView::safeToPropagateScrollToParent): (WebCore::FrameView::setSafeToPropagateScrollToParent): (FrameView): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollRectToVisible): 2012-04-17 Emil A Eklund Add size_t versions of multiplication and division operators to FractionalLayoutUnit https://bugs.webkit.org/show_bug.cgi?id=83848 Reviewed by Julien Chaffraix. Add size_t versions of operator* and operator/ for platforms where there is no ambiguity between unsigned int and size_t. No new tests, no new functionality. * platform/FractionalLayoutUnit.h: (FractionalLayoutUnit): (WebCore::FractionalLayoutUnit::FractionalLayoutUnit): (WebCore::FractionalLayoutUnit::isInBounds): (WebCore): (WebCore::operator*): (WebCore::operator/): 2012-04-17 Kentaro Hara [V8] Add an optional Isolate argument to toV8(). https://bugs.webkit.org/show_bug.cgi?id=84161 Reviewed by Nate Chapin. The final objective is to pass Isolate around in V8 bindings. This patch adds an optional Isolate argument to toV8(). After rewriting all toV8() callers so that they pass Isolate, I will make the Isolate argument non-optional. No tests. No change in behavior. * bindings/scripts/CodeGeneratorV8.pm: Modified as described above. (GenerateHeader): (NativeToJSValue): * bindings/v8/custom/V8BlobCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8CSSRuleCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8CSSValueCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8CanvasPixelArrayCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8DOMStringMapCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8DOMTokenListCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8DataViewCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8DocumentCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8EntryCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8EntrySyncCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8EventCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8Float32ArrayCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8Float64ArrayCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8HTMLCollectionCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8HTMLDocumentCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8HTMLElementCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8IDBAnyCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8IDBKeyCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8ImageDataCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8Int16ArrayCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8Int32ArrayCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8Int8ArrayCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8LocationCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8NamedNodeMapCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8NodeCustom.cpp: (WebCore::toV8Slow): * bindings/v8/custom/V8SVGDocumentCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8SVGElementCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8SVGPathSegCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8ScriptProfileCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8StyleSheetCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8Uint16ArrayCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8Uint32ArrayCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8Uint8ArrayCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8WorkerContextCustom.cpp: (WebCore::toV8): * bindings/scripts/test/V8/V8Float64Array.h: Updated run-bindings-tests results. (WebCore): (WebCore::toV8): * bindings/scripts/test/V8/V8TestActiveDOMObject.h: (WebCore::toV8): * bindings/scripts/test/V8/V8TestCustomNamedGetter.h: (WebCore::toV8): * bindings/scripts/test/V8/V8TestEventConstructor.h: (WebCore::toV8): * bindings/scripts/test/V8/V8TestEventTarget.h: (WebCore::toV8): * bindings/scripts/test/V8/V8TestInterface.h: (WebCore::toV8): * bindings/scripts/test/V8/V8TestMediaQueryListListener.h: (WebCore::toV8): * bindings/scripts/test/V8/V8TestNamedConstructor.h: (WebCore::toV8): * bindings/scripts/test/V8/V8TestNode.h: (WebCore::toV8): * bindings/scripts/test/V8/V8TestObj.h: (WebCore::toV8): * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h: (WebCore::toV8): 2012-04-17 Yury Semikhatsky Web Inspector: move heap snapshot data grids into their own file https://bugs.webkit.org/show_bug.cgi?id=84160 Moved heap snapshot data grids into a separate file. Reviewed by Pavel Feldman. * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/compile-front-end.py: * inspector/front-end/DataGrid.js: * inspector/front-end/HeapSnapshotDataGrids.js: Added. (WebInspector.HeapSnapshotSortableDataGrid): (WebInspector.HeapSnapshotSortableDataGrid.prototype.dispose): (WebInspector.HeapSnapshotSortableDataGrid.prototype.resetSortingCache): (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged.SortByTwoFields): (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged): (WebInspector.HeapSnapshotSortableDataGrid.prototype.updateVisibleNodes): (WebInspector.HeapSnapshotSortableDataGrid.prototype.onResize): (WebInspector.HeapSnapshotSortableDataGrid.prototype._onScroll): (WebInspector.HeapSnapshotSortableDataGrid.prototype._performSorting): (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingEnter): (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingLeave): (WebInspector.HeapSnapshotContainmentDataGrid): (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute.nextStep.else.afterExpand): (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute): (WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource): (WebInspector.HeapSnapshotContainmentDataGrid.prototype.sortingChanged): (WebInspector.HeapSnapshotRetainmentDataGrid): (WebInspector.HeapSnapshotRetainmentDataGrid.prototype._sortFields): (WebInspector.HeapSnapshotRetainmentDataGrid.prototype.reset): (WebInspector.HeapSnapshotConstructorsDataGrid): (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._defaultPopulateCount.100._sortFields): (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.setDataSource): (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren): (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged): (WebInspector.HeapSnapshotDiffDataGrid): (WebInspector.HeapSnapshotDiffDataGrid.prototype._defaultPopulateCount.50._sortFields): (WebInspector.HeapSnapshotDiffDataGrid.prototype.setDataSource): (WebInspector.HeapSnapshotDiffDataGrid.prototype._baseProfileIndexChanged): (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived.addNodeIfNonZeroDiff): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren): (WebInspector.HeapSnapshotDominatorsDataGrid): (WebInspector.HeapSnapshotDominatorsDataGrid.prototype._defaultPopulateCount.25.setDataSource): (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.sortingChanged): * inspector/front-end/HeapSnapshotView.js: * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: 2012-04-17 Vivek Galatage Script make_names.pl should generate consistent .h & .cpp files https://bugs.webkit.org/show_bug.cgi?id=84140 Reviewed by Kentaro Hara. Added a newline character and removed ';' after the DEFINE_GLOBAL No test cases required for this change. * dom/make_names.pl: (printNamesCppFile): 2012-04-17 Aaron Colwell Add webkitSourceAddId() & webkitSourceRemoveId() to HTMLMediaElement and propagate calls to the MediaPlayerPrivate interface. These are needed to bring the Media Source implementation up to date with the new 0.4 version of the Media Source spec. http://html5-mediasource-api.googlecode.com/svn/tags/0.4/draft-spec/mediasource-draft-spec.html https://bugs.webkit.org/show_bug.cgi?id=83616 Reviewed by Eric Carlson, Darin Fisher. Test: http/tests/media/media-source/webm/video-media-source-add-and-remove-ids.html * html/HTMLMediaElement.cpp: (WebCore): (WebCore::HTMLMediaElement::isValidSourceId): (WebCore::HTMLMediaElement::webkitSourceAddId): (WebCore::HTMLMediaElement::webkitSourceRemoveId): (WebCore::HTMLMediaElement::setSourceState): * html/HTMLMediaElement.h: (HTMLMediaElement): * html/HTMLMediaElement.idl: * platform/graphics/MediaPlayer.cpp: (WebCore::NullMediaPlayerPrivate::sourceAddId): (WebCore::NullMediaPlayerPrivate::sourceRemoveId): (WebCore): (WebCore::MediaPlayer::sourceAddId): (WebCore::MediaPlayer::sourceRemoveId): * platform/graphics/MediaPlayer.h: * platform/graphics/MediaPlayerPrivate.h: (WebCore::MediaPlayerPrivateInterface::sourceAddId): (WebCore::MediaPlayerPrivateInterface::sourceRemoveId): 2012-04-17 Alexander Pavlov Web Inspector: [CRASH] InspectorDOMAgent::didInsertDOMNode() on page reload with open Inspector https://bugs.webkit.org/show_bug.cgi?id=84154 Check that a node inserted actually has a parent. Reviewed by Yury Semikhatsky. Test: inspector/elements/elements-panel-reload-assert.html * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::didInsertDOMNode): 2012-04-17 Dana Jansens [chromium] Consistent checking for clipped rects when we need the computed result enclosed within the real result https://bugs.webkit.org/show_bug.cgi?id=83543 Reviewed by Adrienne Walker. It should not be possible to make a rect in layer space that is clipped by the camera but for which the screen space transform gives a rectilinear output. But use consistent methods for checking that the result remains enclosed within the actual pixels. One day when clipped is true, we can find an interior axis-aligned rect within the clipped result, and checking clipped explicitly makes this more clear. Covered by existing tests. * platform/graphics/chromium/cc/CCOcclusionTracker.cpp: (WebCore::computeOcclusionBehindLayer): (WebCore::::markOccludedBehindLayer): 2012-04-17 Vsevolod Vlasov Web Inspector: Suggest box appears after the command was executed in console sometimes. https://bugs.webkit.org/show_bug.cgi?id=84148 Reviewed by Pavel Feldman. TextPrompt.complete() requests completions asynchronously, this change adds a flag that informs TextPrompt._completionsReady() whether completions should still be shown. * inspector/front-end/TextPrompt.js: (WebInspector.TextPrompt.prototype.clearAutoComplete): (WebInspector.TextPrompt.prototype.complete): (WebInspector.TextPrompt.prototype._completionsReady): 2012-04-17 Yong Li REGRESSION (r105453): Crash when handling touch events https://bugs.webkit.org/show_bug.cgi?id=81958 Reviewed by Antonio Gomes. Always perform sanity checks when handling every touch point because the node and document may have been destroyed or detached. ManualTests/touch-stale-iframe-crash.html added. (DumpRenderTree doesn't support transiting touch states in one shot yet) * page/EventHandler.cpp: (WebCore::EventHandler::handleTouchEvent): 2012-04-17 Allan Sandfeld Jensen Asserts in XMLHttpRequestProgressEventThrottle https://bugs.webkit.org/show_bug.cgi?id=81506 Reviewed by Julien Chaffraix. The asserts were incorrectly triggered because suspending active DOM objects (which suspends the XMLHttpRequestProgressEventThrottle) doesn't stop JavaScript from running or suspend any running loader we may have. The previous code would assume those 2 cases were impossible. When XmlHttpRequest::open is called or data is received while the XmlHttpRequest object is suspended the object may attempt to dispatch events. This patch defers these events until the object is resumed. Progress events are coalesced similar to normal throttling, and readystate-change events are coalesced to avoid identical events emitted right after eachother. On resume the events are dispatched after a timer to avoid interfering with ScriptExecutionContext which is iterating over suspended objects. Test: fast/events/pagehide-xhr-open.html * xml/XMLHttpRequestProgressEventThrottle.cpp: (WebCore::XMLHttpRequestProgressEventThrottle::XMLHttpRequestProgressEventThrottle): (WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent): (WebCore::XMLHttpRequestProgressEventThrottle::dispatchEvent): (WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent): (WebCore::XMLHttpRequestProgressEventThrottle::dispatchDeferredEvents): (WebCore::XMLHttpRequestProgressEventThrottle::fired): (WebCore::XMLHttpRequestProgressEventThrottle::suspend): (WebCore::XMLHttpRequestProgressEventThrottle::resume): * xml/XMLHttpRequestProgressEventThrottle.h: (XMLHttpRequestProgressEventThrottle): 2012-04-16 Vsevolod Vlasov Web Inspector: [Chromium] Crash when inspecting empty IndexedDB object store. https://bugs.webkit.org/show_bug.cgi?id=84035 Reviewed by Pavel Feldman. Added a check that m_idbCursor is not null before calling postSuccessHandlerCallback() on it. * inspector/InspectorIndexedDBAgent.cpp: (WebCore): 2012-04-17 Pavel Feldman Web Inspector: [regression r112413]content scripts tree outline is not added to the tab. https://bugs.webkit.org/show_bug.cgi?id=84146 Reviewed by Vsevolod Vlasov. Adding the tree to the container. * inspector/front-end/ScriptsNavigator.js: (WebInspector.ScriptsNavigator): 2012-04-17 Mariusz Grzegorczyk [EFL][WK2] Fix build break when CONTEXT_MENUS is disabled. https://bugs.webkit.org/show_bug.cgi?id=83285 Reviewed by Ryosuke Niwa. * platform/ContextMenuItem.h: Remove macro around enums - needed by InjectedBundle. (WebCore): * platform/Widget.h: Remove namespace WebCore for PlatformPageClient typedef. 2012-04-17 Kent Tamura Introduce an internal feature for a fixed placeholder https://bugs.webkit.org/show_bug.cgi?id=84009 Reviewed by Hajime Morita. This change adds a framework to support fixed placeholder string for textfield-like without the palceholder attribute support. This doesn't change any behavior of input types which support the 'placeholder' attribute. According to the standard, doesn't support the 'placeholder' attribute. However it is a kind of text field in WebKit platforms with ENABLE_CALENDAR_PICKER, and we may show something useful information as the default placeholder. No new tests because of no behavior changes. * html/HTMLTextFormControlElement.h: (HTMLTextFormControlElement): Make isPlaceholderEmpty() virtual. * html/HTMLInputElement.h: (HTMLInputElement): Overrides isPlaceholderEmpty(). * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::isPlaceholderEmpty): Check InputType::defaultPlaceholder() if InputType::usesFixedPlaceholder(). * html/InputType.cpp: (WebCore::InputType::usesFixedPlaceholder): Added. Returns false. (WebCore::InputType::fixedPlaceholder): Added. Returns a null string. * html/InputType.h: (InputType): Add usesFixedPlaceholder() and fixedPlaceholder(). * html/TextFieldInputType.cpp: (WebCore::TextFieldInputType::updatePlaceholderText): Uses fixedPlaceholder() instead of strippedPlaceholder() if usesFixedPlaceholder(). 2012-04-17 Kent Tamura Move some code of LocalizedNumberICU.cpp to ICULocale.cpp https://bugs.webkit.org/show_bug.cgi?id=84128 Reviewed by Hajime Morita. No new tests. No behavior change. * WebCore.gypi: Add ICULocale.cpp * platform/text/ICULocale.cpp: Added. Move some code from LocalizedNumberICU.cpp * platform/text/ICULocale.h: (ICULocale): Add currentLocale(). * platform/text/LocalizedNumberICU.cpp: (WebCore::convertToLocalizedNumber): Use ICULocale::currentLocale(). (WebCore::convertFromLocalizedNumber): ditto. 2012-04-17 Bang Kwang min [Plugins] delete ws_info regardless of window mode. https://bugs.webkit.org/show_bug.cgi?id=83004 Reviewed by Simon Hausmann. m_npWindow.ws_info should be deleted even if plugin run as windowless mode to remove memory leak. Every plugin works well after this patch without any crash. Additionally, change casting syntax to C++ style. * plugins/PluginView.cpp: (WebCore::PluginView::stop): 2012-04-17 Kent Tamura Calendar Picker: Support RTL layout https://bugs.webkit.org/show_bug.cgi?id=83668 Reviewed by Hajime Morita. Manual test: ManualTests/forms/calendar-picker.html * Resources/calendarPicker.js: (layout): If params.isRTL, add dir=rtl to the body. (DaysTable.prototype._handleKey): Reverse Left and Right cursor keys if RTL. * html/shadow/CalendarPickerElement.cpp: (WebCore::addProperty): Add addProperty() with a bool value. (WebCore::CalendarPickerElement::writeDocument): Check the direction of the first character of localized January label, and pass it as isRTL property. 2012-04-16 Carlos Garcia Campos Unreviewed. Fix make distcheck issues. * GNUmakefile.list.am: Add missing files. 2012-04-16 Hajime Morrita insertedIntoDocument and insertedIntoTree should be unitifed. https://bugs.webkit.org/show_bug.cgi?id=82701 Reviewed by Ryosuke Niwa. Both Node::insertedIntoTree() and Node::insertedIntoDocument() are served as lifecycle callbacks which are invoked when a node is inserted into its new parent. There are also removedFromTree() and removedFromDocument() respectively. Considering that this pair of virtual functions are laid onto the hot path, it's worth merging them into one, to gain some speedup. Such unification could clarify the semantics as well. This change makes following change to merge these functions. - pulling the tree traversal out from ContainerNode to ChildNodeInsertionNotifier. - letting new Node::insertInto() do the job for its own, but not for its children and - Pass the parent of each insertion root as a parameter of insertedInto(). This root node can tell inserted node where it is inserted, specifically whetehr the insertion is to the document or not. Same pattern is also applied to Node::removedFromDocument() and Node::removedFromTree(), which are factored to Node::removedFrom() and ChildNodeRemovalNotifier respectively. Speed up on Dromaeo/dom-modify.html is about 2%. Further speed-up by de-virtulization would be possible. Caveat: There is possible situation where a node need to invoke insertedInto() after its children is nofitied, instead of before that. It was represented naturally with previous traversal-by-ContainerNode pattern, but is no longer simple with this new external traversal. To support this scenario, we introduced the InsertionNotificationRequest as a return value of insertedInto() and a supplemental hook Node::didNotifyDescendantInseretions(). See for example HTMLFormElement.cpp to learn how it works. No new tests. Covered by existing tests. * CMakeLists.txt: * GNUmakefile.list.am: * Target.pri: * WebCore.gypi: * WebCore.xcodeproj/project.pbxproj: * dom/ContainerNode.cpp: (WebCore::ContainerNode::parserInsertBefore): (WebCore::ContainerNode::removeChild): (WebCore::ContainerNode::parserRemoveChild): (WebCore::ContainerNode::removeChildren): (WebCore::ContainerNode::parserAddChild): (WebCore::updateTreeAfterInsertion): * dom/ContainerNode.h: (ContainerNode): (WebCore::Node::highestAncestor): (WebCore): * dom/ContainerNodeAlgorithms.cpp: Added. (WebCore): (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument): (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoTree): (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument): (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromTree): * dom/ContainerNodeAlgorithms.h: (ChildNodeInsertionNotifier): (WebCore::ChildNodeInsertionNotifier::ChildNodeInsertionNotifier): (WebCore): (ChildNodeRemovalNotifier): (WebCore::ChildNodeRemovalNotifier::ChildNodeRemovalNotifier): (WebCore::removeAllChildrenInContainer): (WebCore::appendChildToContainer): (Private): (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument): (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree): (WebCore::ChildNodeInsertionNotifier::notifyInsertedIntoDocument): (WebCore::ChildNodeInsertionNotifier::notify): (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument): (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromTree): (WebCore::ChildNodeRemovalNotifier::notify): * dom/DOMAllInOne.cpp: * dom/DocumentType.cpp: (WebCore::DocumentType::insertedInto): (WebCore::DocumentType::removedFrom): * dom/DocumentType.h: (DocumentType): * dom/Element.cpp: (WebCore::Element::insertedInto): (WebCore::Element::removedFrom): * dom/Element.h: (Element): * dom/Node.cpp: (WebCore::Node::insertedInto): (WebCore::Node::removedFrom): * dom/Node.h: (Node): (WebCore::Node::didNotifyDescendantInseretions): * dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::insertedInto): (WebCore::ProcessingInstruction::removedFrom): * dom/ProcessingInstruction.h: (ProcessingInstruction): * dom/ScriptElement.cpp: (WebCore::ScriptElement::insertedInto): * dom/ScriptElement.h: (WebCore): (ScriptElement): * dom/ShadowTree.cpp: (WebCore::ShadowTree::addShadowRoot): (WebCore::ShadowTree::removeAllShadowRoots): * dom/ShadowTree.h: (ShadowTree): (ShadowRootVector): (WebCore::ShadowRootVector::ShadowRootVector): (WebCore): * html/FormAssociatedElement.cpp: (WebCore::FormAssociatedElement::insertedInto): (WebCore::FormAssociatedElement::removedFrom): (WebCore::FormAssociatedElement::formRemovedFromTree): * html/FormAssociatedElement.h: (FormAssociatedElement): * html/HTMLBaseElement.cpp: (WebCore::HTMLBaseElement::insertedInto): (WebCore::HTMLBaseElement::removedFrom): * html/HTMLBaseElement.h: (HTMLBaseElement): * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::insertedInto): (WebCore::HTMLBodyElement::didNotifyDescendantInseretions): * html/HTMLBodyElement.h: (HTMLBodyElement): * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::insertedInto): (WebCore::HTMLFormControlElement::removedFrom): * html/HTMLFormControlElement.h: (HTMLFormControlElement): * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::insertedInto): (WebCore::HTMLFormElement::didNotifyDescendantInseretions): (WebCore::HTMLFormElement::removedFrom): * html/HTMLFormElement.h: (HTMLFormElement): * html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::insertedInto): (WebCore): (WebCore::HTMLFrameElementBase::didNotifyDescendantInseretions): * html/HTMLFrameElementBase.h: (HTMLFrameElementBase): * html/HTMLFrameSetElement.cpp: (WebCore::HTMLFrameSetElement::insertedInto): (WebCore::HTMLFrameSetElement::removedFrom): * html/HTMLFrameSetElement.h: (HTMLFrameSetElement): * html/HTMLIFrameElement.cpp: (WebCore::HTMLIFrameElement::insertedInto): (WebCore::HTMLIFrameElement::removedFrom): * html/HTMLIFrameElement.h: (HTMLIFrameElement): * html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::insertedInto): (WebCore::HTMLImageElement::removedFrom): * html/HTMLImageElement.h: (HTMLImageElement): * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::insertedInto): (WebCore::HTMLInputElement::removedFrom): * html/HTMLInputElement.h: * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::insertedInto): (WebCore::HTMLLinkElement::removedFrom): * html/HTMLLinkElement.h: (HTMLLinkElement): * html/HTMLMapElement.cpp: (WebCore::HTMLMapElement::insertedInto): (WebCore::HTMLMapElement::removedFrom): * html/HTMLMapElement.h: (HTMLMapElement): * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::insertedInto): (WebCore::HTMLMediaElement::removedFrom): * html/HTMLMediaElement.h: (HTMLMediaElement): * html/HTMLMetaElement.cpp: (WebCore::HTMLMetaElement::insertedInto): * html/HTMLMetaElement.h: (HTMLMetaElement): * html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::insertedInto): (WebCore::HTMLObjectElement::removedFrom): * html/HTMLObjectElement.h: (HTMLObjectElement): * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::insertedInto): * html/HTMLOptionElement.h: (HTMLOptionElement): * html/HTMLQuoteElement.cpp: (WebCore::HTMLQuoteElement::insertedInto): * html/HTMLQuoteElement.h: (HTMLQuoteElement): * html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::insertedInto): * html/HTMLScriptElement.h: (HTMLScriptElement): * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::insertedInto): * html/HTMLSelectElement.h: * html/HTMLSourceElement.cpp: (WebCore::HTMLSourceElement::insertedInto): * html/HTMLSourceElement.h: (HTMLSourceElement): * html/HTMLStyleElement.cpp: (WebCore::HTMLStyleElement::insertedInto): (WebCore::HTMLStyleElement::removedFrom): * html/HTMLStyleElement.h: (HTMLStyleElement): * html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::insertedInto): * html/HTMLTextFormControlElement.h: * html/HTMLTitleElement.cpp: (WebCore::HTMLTitleElement::insertedInto): (WebCore::HTMLTitleElement::removedFrom): * html/HTMLTitleElement.h: (HTMLTitleElement): * html/HTMLTrackElement.cpp: (WebCore::HTMLTrackElement::insertedInto): * html/HTMLTrackElement.h: (HTMLTrackElement): * mathml/MathMLMathElement.cpp: (WebCore::MathMLMathElement::insertedInto): * mathml/MathMLMathElement.h: (MathMLMathElement): * svg/SVGElement.cpp: (WebCore::SVGElement::removedFrom): * svg/SVGElement.h: (SVGElement): * svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::insertedInto): (WebCore::SVGFEImageElement::removedFrom): * svg/SVGFEImageElement.h: (SVGFEImageElement): * svg/SVGFontFaceElement.cpp: (WebCore::SVGFontFaceElement::insertedInto): (WebCore::SVGFontFaceElement::removedFrom): * svg/SVGFontFaceElement.h: (SVGFontFaceElement): * svg/SVGFontFaceUriElement.cpp: (WebCore::SVGFontFaceUriElement::insertedInto): * svg/SVGFontFaceUriElement.h: (SVGFontFaceUriElement): * svg/SVGGlyphElement.cpp: (WebCore::SVGGlyphElement::insertedInto): (WebCore::SVGGlyphElement::removedFrom): * svg/SVGGlyphElement.h: (SVGGlyphElement): * svg/SVGHKernElement.cpp: (WebCore::SVGHKernElement::insertedInto): (WebCore::SVGHKernElement::removedFrom): * svg/SVGHKernElement.h: (SVGHKernElement): * svg/SVGImageElement.cpp: (WebCore::SVGImageElement::insertedInto): * svg/SVGImageElement.h: (SVGImageElement): * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::insertedInto): (WebCore::SVGSVGElement::removedFrom): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGScriptElement.cpp: (WebCore::SVGScriptElement::insertedInto): * svg/SVGScriptElement.h: (SVGScriptElement): * svg/SVGStyleElement.cpp: (WebCore::SVGStyleElement::insertedInto): (WebCore::SVGStyleElement::removedFrom): * svg/SVGStyleElement.h: (SVGStyleElement): * svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::insertedInto): (WebCore::SVGStyledElement::removedFrom): (WebCore::SVGStyledElement::updateRelativeLengthsInformation): * svg/SVGStyledElement.h: (SVGStyledElement): * svg/SVGTRefElement.cpp: (WebCore::SVGTRefElement::buildPendingResource): (WebCore::SVGTRefElement::insertedInto): (WebCore::SVGTRefElement::removedFrom): * svg/SVGTRefElement.h: (SVGTRefElement): * svg/SVGTextPathElement.cpp: (WebCore::SVGTextPathElement::insertedInto): * svg/SVGTextPathElement.h: * svg/SVGTitleElement.cpp: (WebCore::SVGTitleElement::insertedInto): (WebCore::SVGTitleElement::removedFrom): * svg/SVGTitleElement.h: (SVGTitleElement): * svg/SVGUseElement.cpp: (WebCore::SVGUseElement::insertedInto): (WebCore::SVGUseElement::removedFrom): * svg/SVGUseElement.h: (SVGUseElement): * svg/SVGVKernElement.cpp: (WebCore::SVGVKernElement::insertedInto): (WebCore::SVGVKernElement::removedFrom): * svg/SVGVKernElement.h: (SVGVKernElement): * svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::insertedInto): (WebCore::SVGSMILElement::removedFrom): * svg/animation/SVGSMILElement.h: (SVGSMILElement): 2012-04-16 David Barr Stack overflow in CSS parser caused by recursive stylesheet import https://bugs.webkit.org/show_bug.cgi?id=83545 Reviewed by Ryosuke Niwa. Test: http/tests/css/css-imports-redirect-cycle.html * css/CSSImportRule.cpp: (WebCore::StyleRuleImport::requestStyleSheet): 2012-04-16 Kent Tamura Rename LocalizedNumberICU.h to ICULocale.h https://bugs.webkit.org/show_bug.cgi?id=84119 Reviewed by Kentaro Hara. LocalizedNumberICU.h contains only ICULocale class. It should be named as ICULocale.h. We're going to move some functions in LocalizedDateICU.cpp and LocalizedCalendarICU.cpp to ICULocale, and add unit tests for them. * WebCore.gypi: Rename LocalizedNumberICU.h to ICULocale.h * platform/text/ICULocale.h: Renamed from Source/WebCore/platform/text/LocalizedNumberICU.h. * platform/text/LocalizedNumberICU.cpp: Rename LocalizedNumberICU.h to ICULocale.h 2012-04-16 James Robinson [chromium] Move paintRenderedResultsToCanvas code into DrawingBuffer https://bugs.webkit.org/show_bug.cgi?id=84066 Reviewed by Adrienne Walker. WebGLLayerChromium used to be responsible for the readback path for software painting WebGL canvases (for printing, etc), but this path no longer has any compositor interaction. This moves the code into DrawingBufferChromium which is responsible for managing the front / back buffers for WebGL. * platform/graphics/chromium/DrawingBufferChromium.cpp: (WebCore::DrawingBuffer::paintCompositedResultsToCanvas): * platform/graphics/chromium/WebGLLayerChromium.cpp: * platform/graphics/chromium/WebGLLayerChromium.h: (WebGLLayerChromium): 2012-04-16 Dana Jansens [chromium] Expose compositor filters to Aura through WebLayer https://bugs.webkit.org/show_bug.cgi?id=80054 Reviewed by James Robinson. Adds WebFilterOperation that wraps WebCore::FilterOperation and WebFilterOperations that wraps WebCore::FilterOperations. We add support for most of the FilterOperation subclasses, and allow the user to set the WebFilterOperations for both layer content filters and background filters. * WebCore.gypi: * platform/chromium/support/WebFilterOperation.cpp: Added. (WebKit): (WebKit::WebBasicColorMatrixFilterOperation::toFilterOperation): (WebKit::WebBasicComponentTransferFilterOperation::toFilterOperation): (WebKit::WebBlurFilterOperation::toFilterOperation): (WebKit::WebDropShadowFilterOperation::toFilterOperation): * platform/chromium/support/WebFilterOperations.cpp: Added. (WebKit): (WebKit::WebFilterOperations::WebFilterOperations): (WebKit::WebFilterOperations::append): (WebKit::WebFilterOperations::clear): (WebKit::WebFilterOperations::toFilterOperations): 2012-04-16 Andrei Burago Auto-sized frames may be taller than expected https://bugs.webkit.org/show_bug.cgi?id=84106 Reviewed by David Levin. No new tests. The repro steps require using Chrome notifications on Win. * page/FrameView.cpp: (WebCore::FrameView::autoSizeIfEnabled): 2012-04-13 James Robinson [chromium] Expose WebVideoLayer to Platform API and port WebMediaPlayerClientImpl to using it https://bugs.webkit.org/show_bug.cgi?id=83963 Reviewed by Adrienne Walker. Converts VideoLayerChromium / CCVideoLayerImpl to use a Platform WebVideoFrameProvider interface instead of a WebCore VideoFrameProvider. * WebCore.gypi: * platform/graphics/chromium/VideoLayerChromium.cpp: (WebCore::VideoLayerChromium::create): (WebCore::VideoLayerChromium::VideoLayerChromium): * platform/graphics/chromium/VideoLayerChromium.h: (WebKit): (WebCore): (VideoLayerChromium): * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp: (WebCore::CCVideoLayerImpl::CCVideoLayerImpl): * platform/graphics/chromium/cc/CCVideoLayerImpl.h: (WebCore::CCVideoLayerImpl::create): (CCVideoLayerImpl): 2012-04-16 Takashi Sakamoto [Shadow DOM] InsertionPoint should have isActive() member function. https://bugs.webkit.org/show_bug.cgi?id=82010 Reviewed by Hajime Morita. This patch adds isActive public member function to InsertionPoint and makes InsertionPoint elements consider whether active or not. If an InsertionPoint is inactive, the element is not shadow boundary and is needed to be rendered. c.f. https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#dfn-active-insertion-point Test: update existing tests, i.e. LayoutTests/fast/dom/shadow/shadow-contents-fallback-dynamic.html and LayoutTests/fast/dom/shadow/shadow-contents-fallback.html * html/shadow/InsertionPoint.cpp: (WebCore::InsertionPoint::isActive): A new public method for checking whether an insertion point is active or inactive. If active, returns true. Otherwise, false. (WebCore::InsertionPoint::isShadowBoundary): Make the method consider whether an insertin point is active or inactive. (WebCore::InsertionPoint::rendererIsNeeded): Changed to return true If an insertion point is inactive. (WebCore::InsertionPoint::attach): Changed to call only HTMLElement::attach If an insertion point is inactive. (WebCore::InsertionPoint::detach): Changed to call only HTMLElement::detach If an insertion point is inactive. * html/shadow/InsertionPoint.h: (InsertionPoint): Added isActive public method. * dom/NodeRenderingContext.cpp: (WebCore::NodeRenderingContext::NodeRenderingContext): Changed to take into account an insertion point's activeness when parent is an insertion point. (WebCore::NodeRenderingContext::firstRendererOf): (WebCore::NodeRenderingContext::lastRendererOf): Changed to take into account an insertion point's activeness. 2012-04-16 MORITA Hajime Type tags in NodeFlags could be compressed https://bugs.webkit.org/show_bug.cgi?id=79299 Because existing node flags which indicate the class of each node are mutually exclusive, these flags can be represented as a enum. This patch introduces Node::NodeTypeTag to turn these flags into a enum, and embeds it into Node::m_nodeFlags. Reviewed by Antti Koivisto. No new tests. No bahavior change. * dom/Node.cpp: (WebCore): * dom/Node.h: (WebCore): (Node): (WebCore::Node::typeTag): (WebCore::Node::parentNode): (WebCore::Node::parentNodeGuaranteedHostFree): (WebCore::Node::isContainerNode): (WebCore::Node::isElementNode): (WebCore::Node::isStyledElement): (WebCore::Node::isTextNode): (WebCore::Node::isHTMLElement): (WebCore::Node::isSVGElement): (WebCore::Node::isShadowRoot): 2012-04-16 Sheriff Bot Unreviewed, rolling out r114285. http://trac.webkit.org/changeset/114285 https://bugs.webkit.org/show_bug.cgi?id=84107 broke fast/media/media-query-list-08.html in Mac (Requested by andersca on #webkit). * dom/Document.cpp: (WebCore::Document::styleSelectorChanged): * dom/Document.h: (Document): * page/FrameView.cpp: (WebCore::FrameView::layout): 2012-04-16 Nate Chapin Remove unused variable CachedResourceLoader::m_loadFinishing https://bugs.webkit.org/show_bug.cgi?id=84100 Reviewed by Alexey Proskuryakov. No new tests, removing dead code. * loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::CachedResourceLoader): (WebCore::CachedResourceLoader::loadDone): (WebCore::CachedResourceLoader::decrementRequestCount): * loader/cache/CachedResourceLoader.h: (CachedResourceLoader): (WebCore::CachedResourceLoader::requestCount): 2012-04-16 Andreas Kling Remove contextStyleSheet argument from CSSValuePool::createFontFaceValue(). Reviewed by Antti Koivisto. Remove the 'context style sheet' argument to value parsing. It was only ever used to grab at the CSSValuePool back when they were per-Document. * css/CSSParser.h: * css/CSSParser.cpp: (WebCore::CSSParser::parseFontFaceValue): * css/CSSValuePool.h: * css/CSSValuePool.cpp: (WebCore::CSSValuePool::createFontFaceValue): * html/HTMLFontElement.cpp: (WebCore::HTMLFontElement::collectStyleForAttribute): 2012-04-16 Dana Jansens [chromium] Consistent checking for clipped rects when we need the computed result enclosed within the real result https://bugs.webkit.org/show_bug.cgi?id=83543 Reviewed by Adrienne Walker. It should not be possible to make a rect in layer space that is clipped by the camera but for which the screen space transform gives a rectilinear output. But use consistent methods for checking that the result remains enclosed within the actual pixels. One day when clipped is true, we can find an interior axis-aligned rect within the clipped result, and checking clipped explicitly makes this more clear. Covered by existing tests. * platform/graphics/chromium/cc/CCOcclusionTracker.cpp: (WebCore::computeOcclusionBehindLayer): (WebCore::::markOccludedBehindLayer): 2012-04-16 Erik Arvidsson [V8] Don't delete the per context data until the V8IsolatedContext is deleted https://bugs.webkit.org/show_bug.cgi?id=83831 Reviewed by Nate Chapin. Test: http/tests/security/isolatedWorld/context-destroy.html * bindings/v8/V8IsolatedContext.cpp: (WebCore::V8IsolatedContext::destroy): 2012-04-16 Greg Billock Add V8 code generation support for MessagePortArray attributes. https://bugs.webkit.org/show_bug.cgi?id=83943 Reviewed by Kentaro Hara. * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): * bindings/scripts/IDLAttributes.txt: * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp: (WebDOMTestSerializedScriptValueInterface::ports): * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.h: (WebDOMTestSerializedScriptValueInterface): * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp: (webkit_dom_test_serialized_script_value_interface_get_property): (webkit_dom_test_serialized_script_value_interface_class_init): (webkit_dom_test_serialized_script_value_interface_get_ports): * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h: * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: (WebCore): (WebCore::jsTestSerializedScriptValueInterfacePorts): * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h: (WebCore): * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h: * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm: (-[DOMTestSerializedScriptValueInterface ports]): * bindings/scripts/test/TestSerializedScriptValueInterface.idl: * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp: (WebCore::TestSerializedScriptValueInterfaceInternal::portsAttrGetter): (TestSerializedScriptValueInterfaceInternal): (WebCore): 2012-04-16 Xiaomei Ji platform/graphics/skia/GlyphPageTreeNodeSkia.cpp mis-use 'continue' for 'break' https://bugs.webkit.org/show_bug.cgi?id=83521 Reviewed by David Levin. No functionality change, so no new tests. * platform/graphics/skia/GlyphPageTreeNodeSkia.cpp: (WebCore::GlyphPage::fill): 2012-04-16 Levi Weintraub Make borderBoxRect sub-pixel precise and add a pixel snapped version https://bugs.webkit.org/show_bug.cgi?id=84063 Reviewed by Eric Seidel. In an effort to prevent misuse, we previously decided to have borderBoxRect return a pixel-snapped IntRect. This is because borderBoxRect returns a rect that's positioned at (0,0), and therefore won't snap to the same size as the element it's covering. There are a couple uses of borderBoxRect that don't pixel snap the values and require sub-pixel precision. This patch adds a pixelSnappedBorderBoxRect that makes the snapping explicit, and moves uses that would otherwise pixel snap the rect to this version to avoid producing a rect of the incorrect size. For details about pixel snapping with LayoutUnits, please see https://trac.webkit.org/wiki/LayoutUnit No new tests. No change in behavior. * html/shadow/TextControlInnerElements.cpp: (WebCore::SpinButtonElement::defaultEventHandler): * rendering/RenderBlock.cpp: (WebCore::RenderBlock::addVisualOverflowFromTheme): * rendering/RenderBox.h: (WebCore::RenderBox::borderBoxRect): (WebCore::RenderBox::pixelSnappedBorderBoxRect): (WebCore::RenderBox::borderBoundingBox): (WebCore::RenderBox::hasVisualOverflow): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollCornerRect): (WebCore::RenderLayer::scrollCornerAndResizerRect): (WebCore::RenderLayer::horizontalScrollbarStart): (WebCore::RenderLayer::positionOverflowControls): (WebCore::RenderLayer::paintResizer): (WebCore::RenderLayer::hitTestOverflowControls): * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): (WebCore::RenderLayerBacking::startAnimation): (WebCore::RenderLayerBacking::startTransition): * rendering/RenderTable.cpp: (WebCore::RenderTable::addOverflowFromChildren): * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintSearchFieldCancelButton): (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration): (WebCore::RenderThemeMac::paintSearchFieldResultsButton): * rendering/svg/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::paintReplaced): (WebCore::RenderSVGRoot::computeFloatRectForRepaint): 2012-04-16 Anders Carlsson Crash when running some editing related tests https://bugs.webkit.org/show_bug.cgi?id=84091 Reviewed by Andreas Kling. Null check triggeringEvent. * editing/Editor.cpp: (WebCore::Editor::insertTextWithoutSendingTextEvent): 2012-04-16 Simon Fraser Rename to updateZOrderListsSlowCase to rebuildZOrderLists https://bugs.webkit.org/show_bug.cgi?id=84071 Reviewed by Antti Koivisto. Use a better name for updateZOrderListsSlowCase(). * rendering/RenderLayer.cpp: (WebCore::RenderLayer::rebuildZOrderLists): * rendering/RenderLayer.h: (RenderLayer): (WebCore::RenderLayer::updateZOrderLists): 2012-04-16 Terry Anderson [chromium] Allow WebGestureEvent to store four floating point values https://bugs.webkit.org/show_bug.cgi?id=84053 Reviewed by Darin Fisher. See bug description for an explanation of the changes made. * platform/PlatformGestureEvent.h: (WebCore::PlatformGestureEvent::PlatformGestureEvent): (PlatformGestureEvent): (WebCore::PlatformGestureEvent::gammaX): (WebCore::PlatformGestureEvent::gammaY): 2012-04-16 Kentaro Hara [Refactoring][V8] Remove $indent from NativeToJSValue() https://bugs.webkit.org/show_bug.cgi?id=84077 Reviewed by Nate Chapin. $indent in NativeToJSValue() in CodeGeneratorV8.pm is not used. This patch removes it. No new tests. No change in behavior. * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateFunctionCallString): (NativeToJSValue): 2012-04-16 Luiz Agostini matchMedia() MediaQueryList not updating https://bugs.webkit.org/show_bug.cgi?id=75903 Reviewed by Antti Koivisto. Test: fast/media/media-query-list-08.html Viewport related MediaQueryList listeners were not triggered and the value of matches were not updated if the document's style selector were not affected by viewport changes. The new method evaluateMediaQueries() is now called by FrameView instead of styleSelectorChanged() if the style selector is not affected by viewport changes. * dom/Document.cpp: (WebCore::Document::evaluateMediaQueries): (WebCore): (WebCore::Document::styleSelectorChanged): * dom/Document.h: (Document): * page/FrameView.cpp: (WebCore::FrameView::layout): 2012-04-16 James Robinson [chromium] Delete uncalled unreserveContentsTextures function https://bugs.webkit.org/show_bug.cgi?id=84005 Reviewed by Adrienne Walker. This is vestigal dead code. * platform/graphics/chromium/Canvas2DLayerChromium.cpp: * platform/graphics/chromium/Canvas2DLayerChromium.h: (Canvas2DLayerChromium): * platform/graphics/chromium/LayerChromium.h: * platform/graphics/chromium/cc/CCLayerImpl.h: (CCLayerImpl): 2012-04-13 Simon Fraser Avoid using backing store for compositing layers that just need to clip https://bugs.webkit.org/show_bug.cgi?id=40547 Reviewed by Dean Jackson. If a layer becomes composited because it needs to clip composited descendants, or if it has perspective, then it doesn't actually needs its own backing store; its contents can be painted by an ancestor, and we can just have an empty layer that does the clipping or applies the perspective transform. This saves backing store memory on some pages. Tests: compositing/backing/no-backing-for-clip-overlap.html compositing/backing/no-backing-for-clip.html compositing/backing/no-backing-for-perspective.html * rendering/RenderLayer.cpp: (WebCore): (WebCore::RenderLayer::enclosingCompositingLayerForRepaint): (WebCore::RenderLayer::paintLayer): * rendering/RenderLayer.h: (RenderLayer): * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::RenderLayerBacking): (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): (WebCore::RenderLayerBacking::containsPaintedContent): (WebCore::RenderLayerBacking::setContentsNeedDisplay): (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect): (WebCore::RenderLayerBacking::paintIntoLayer): * rendering/RenderLayerBacking.h: (RenderLayerBacking): (WebCore::RenderLayerBacking::paintsIntoCompositedAncestor): (WebCore::RenderLayerBacking::setRequiresOwnBackingStore): * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::layerWillBeRemoved): (WebCore::RenderLayerCompositor::recursiveRepaintLayerRect): (WebCore::RenderLayerCompositor::requiresCompositingLayer): (WebCore::RenderLayerCompositor::requiresOwnBackingStore): (WebCore): * rendering/RenderLayerCompositor.h: * rendering/RenderObject.cpp: (WebCore::RenderObject::containerForRepaint): * rendering/RenderTreeAsText.cpp: (WebCore::write): * rendering/RenderView.cpp: (WebCore::RenderView::paintBoxDecorations): 2012-04-16 Brady Eidson and https://bugs.webkit.org/show_bug.cgi?id=84050 WebKit2 back/forward items in the page cache are never removed when the page is closed Reviewed by Jessie Berlin and unofficially reviewed by Jon Lee. * WebCore.exp.in: Export PageCache::remove() 2012-04-16 Philippe Normand Unreviewed, GTK build fix after r114269. * GNUmakefile.list.am: 2012-04-16 Andrey Kosyakov Web Inspector: timeline. Range selection works incorrect with right click https://bugs.webkit.org/show_bug.cgi?id=83870 Reviewed by Pavel Feldman. - only start window dragging upon mousedown with left button (right will cause a context menu and we won't see mouseup) * inspector/front-end/TimelineOverviewPane.js: (WebInspector.TimelineOverviewWindow.prototype._dragWindow): 2012-04-16 Andrey Kosyakov Web Inspector: touch pad is pain to use in lower pane of Timeline panel due two two-axis scrolling https://bugs.webkit.org/show_bug.cgi?id=83946 Reviewed by Pavel Feldman. Remove delegation of mousewheel events from lower timeline pane to the timeline overview. This disables support for moving overview window with horizontal swype over lower timeline pane, thus removing an irritating situation when we try to both change overview window and scroll lower timeline pane upon a single touchpad gesture. Those willing to move timeline window now would need to position mouse over overview. * inspector/front-end/TimelineOverviewPane.js: (WebInspector.TimelineOverviewWindow.prototype._onMouseWheel): (WebInspector.TimelineOverviewWindow.prototype._zoom): * inspector/front-end/TimelinePanel.js: (WebInspector.TimelinePanel): 2012-04-16 Yury Semikhatsky Web Inspector: rename heap profiler files and classes DetailedHeapshot* ->HeapSnapshot* https://bugs.webkit.org/show_bug.cgi?id=84038 A bunch of renames "detailed heapshot" -> "heap snapshot". Reviewed by Pavel Feldman. Tests: inspector/profiler/heap-snapshot-comparison-expansion-preserved-when-sorting.html inspector/profiler/heap-snapshot-comparison-show-all.html inspector/profiler/heap-snapshot-comparison-show-next.html inspector/profiler/heap-snapshot-comparison-shown-node-count-preserved-when-sorting.html inspector/profiler/heap-snapshot-comparison-sorting.html inspector/profiler/heap-snapshot-containment-expansion-preserved-when-sorting.html inspector/profiler/heap-snapshot-containment-show-all.html inspector/profiler/heap-snapshot-containment-show-next.html inspector/profiler/heap-snapshot-containment-shown-node-count-preserved-when-sorting.html inspector/profiler/heap-snapshot-containment-sorting.html inspector/profiler/heap-snapshot-dominators-expansion-preserved-when-sorting.html inspector/profiler/heap-snapshot-dominators-show-all.html inspector/profiler/heap-snapshot-dominators-show-next.html inspector/profiler/heap-snapshot-dominators-shown-node-count-preserved-when-sorting.html inspector/profiler/heap-snapshot-dominators-sorting.html inspector/profiler/heap-snapshot-summary-expansion-preserved-when-sorting.html inspector/profiler/heap-snapshot-summary-show-all.html inspector/profiler/heap-snapshot-summary-show-next.html inspector/profiler/heap-snapshot-summary-shown-node-count-preserved-when-sorting.html inspector/profiler/heap-snapshot-summary-sorting.html * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/compile-front-end.py: * inspector/front-end/HeapSnapshotGridNodes.js: Renamed from Source/WebCore/inspector/front-end/DetailedHeapshotGridNodes.js. (WebInspector.HeapSnapshotGridNode): (WebInspector.HeapSnapshotGridNode.prototype.ensureContentCreated): (WebInspector.HeapSnapshotGridNode.prototype.createCell): (WebInspector.HeapSnapshotGridNode.prototype.dispose): (WebInspector.HeapSnapshotGridNode.prototype.hasHoverMessage.false.queryObjectContent): (WebInspector.HeapSnapshotGridNode.prototype._toPercentString): (WebInspector.HeapSnapshotGridNode.prototype._createValueCell): (WebInspector.HeapSnapshotGridNode.prototype._populate.sorted): (WebInspector.HeapSnapshotGridNode.prototype._populate): (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.callSerialize): (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.childrenRetrieved.notify): (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.childrenRetrieved): (WebInspector.HeapSnapshotGridNode.prototype.populateChildren): (WebInspector.HeapSnapshotGridNode.prototype._saveChildren): (WebInspector.HeapSnapshotGridNode.prototype.sort.afterSort.afterPopulate): (WebInspector.HeapSnapshotGridNode.prototype.sort.afterSort): (WebInspector.HeapSnapshotGridNode.prototype.sort): (WebInspector.HeapSnapshotLazyGridNode): (WebInspector.HeapSnapshotLazyGridNode.prototype.ensureContentCreated): (WebInspector.HeapSnapshotLazyGridNode.prototype.createCells): (WebInspector.HeapSnapshotGenericObjectNode): (WebInspector.HeapSnapshotGenericObjectNode.prototype.createCell): (WebInspector.HeapSnapshotGenericObjectNode.prototype._createObjectCell): (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data): (WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent.else.formatResult): (WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent): (WebInspector.HeapSnapshotGenericObjectNode.prototype.get _retainedSizePercent): (WebInspector.HeapSnapshotGenericObjectNode.prototype.get _shallowSizePercent): (WebInspector.HeapSnapshotGenericObjectNode.prototype.updateHasChildren): (WebInspector.HeapSnapshotGenericObjectNode.prototype.isWindow): (WebInspector.HeapSnapshotGenericObjectNode.prototype.shortenWindowURL): (WebInspector.HeapSnapshotObjectNode): (WebInspector.HeapSnapshotObjectNode.prototype.updateHasChildren): (WebInspector.HeapSnapshotObjectNode.prototype._createChildNode): (WebInspector.HeapSnapshotObjectNode.prototype._childHashForEntity): (WebInspector.HeapSnapshotObjectNode.prototype._childHashForNode): (WebInspector.HeapSnapshotObjectNode.prototype.comparator): (WebInspector.HeapSnapshotObjectNode.prototype._emptyData): (WebInspector.HeapSnapshotObjectNode.prototype._enhanceData): (WebInspector.HeapSnapshotObjectNode.prototype._prefixObjectCell): (WebInspector.HeapSnapshotInstanceNode): (WebInspector.HeapSnapshotInstanceNode.prototype._createChildNode): (WebInspector.HeapSnapshotInstanceNode.prototype._childHashForEntity): (WebInspector.HeapSnapshotInstanceNode.prototype._childHashForNode): (WebInspector.HeapSnapshotInstanceNode.prototype.comparator): (WebInspector.HeapSnapshotInstanceNode.prototype._emptyData): (WebInspector.HeapSnapshotInstanceNode.prototype._enhanceData): (WebInspector.HeapSnapshotInstanceNode.prototype.get isDeletedNode): (WebInspector.HeapSnapshotConstructorNode): (WebInspector.HeapSnapshotConstructorNode.prototype.createCell): (WebInspector.HeapSnapshotConstructorNode.prototype._createChildNode): (WebInspector.HeapSnapshotConstructorNode.prototype._createNodesProvider): (WebInspector.HeapSnapshotConstructorNode.prototype.comparator): (WebInspector.HeapSnapshotConstructorNode.prototype._childHashForEntity): (WebInspector.HeapSnapshotConstructorNode.prototype._childHashForNode): (WebInspector.HeapSnapshotConstructorNode.prototype.get data): (WebInspector.HeapSnapshotConstructorNode.prototype.get _countPercent): (WebInspector.HeapSnapshotConstructorNode.prototype.get _retainedSizePercent): (WebInspector.HeapSnapshotConstructorNode.prototype.get _shallowSizePercent): (WebInspector.HeapSnapshotIteratorsTuple): (WebInspector.HeapSnapshotIteratorsTuple.prototype.dispose): (WebInspector.HeapSnapshotIteratorsTuple.prototype.sortAndRewind): (WebInspector.HeapSnapshotDiffNode): (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.diffCalculated): (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff): (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.baseIdsReceived): (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.idsReceived): (WebInspector.HeapSnapshotDiffNode.prototype._createChildNode): (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider.createProvider): (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider): (WebInspector.HeapSnapshotDiffNode.prototype._childHashForEntity): (WebInspector.HeapSnapshotDiffNode.prototype._childHashForNode): (WebInspector.HeapSnapshotDiffNode.prototype.comparator): (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren.firstProviderPopulated): (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren.else.firstProviderPopulated): (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren): (WebInspector.HeapSnapshotDiffNode.prototype._signForDelta): (WebInspector.HeapSnapshotDiffNode.prototype.get data): (WebInspector.HeapSnapshotDominatorObjectNode): (WebInspector.HeapSnapshotDominatorObjectNode.prototype._createChildNode): (WebInspector.HeapSnapshotDominatorObjectNode.prototype._createProvider): (WebInspector.HeapSnapshotDominatorObjectNode.prototype._childHashForEntity): (WebInspector.HeapSnapshotDominatorObjectNode.prototype._childHashForNode): (WebInspector.HeapSnapshotDominatorObjectNode.prototype.comparator): (WebInspector.HeapSnapshotDominatorObjectNode.prototype._emptyData): (MixInSnapshotNodeFunctions): * inspector/front-end/HeapSnapshotView.js: Renamed from Source/WebCore/inspector/front-end/DetailedHeapshotView.js. (WebInspector.HeapSnapshotSortableDataGrid): (WebInspector.HeapSnapshotSortableDataGrid.prototype.dispose): (WebInspector.HeapSnapshotSortableDataGrid.prototype.resetSortingCache): (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged.SortByTwoFields): (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged): (WebInspector.HeapSnapshotSortableDataGrid.prototype.updateVisibleNodes): (WebInspector.HeapSnapshotSortableDataGrid.prototype.onResize): (WebInspector.HeapSnapshotSortableDataGrid.prototype._onScroll): (WebInspector.HeapSnapshotSortableDataGrid.prototype._performSorting): (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingEnter): (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingLeave): (WebInspector.HeapSnapshotContainmentDataGrid): (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute.nextStep.else.afterExpand): (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute): (WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource): (WebInspector.HeapSnapshotContainmentDataGrid.prototype.sortingChanged): (WebInspector.HeapSnapshotRetainmentDataGrid): (WebInspector.HeapSnapshotRetainmentDataGrid.prototype._sortFields): (WebInspector.HeapSnapshotRetainmentDataGrid.prototype.reset): (WebInspector.HeapSnapshotConstructorsDataGrid): (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._defaultPopulateCount.100._sortFields): (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.setDataSource): (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren): (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged): (WebInspector.HeapSnapshotDiffDataGrid): (WebInspector.HeapSnapshotDiffDataGrid.prototype._defaultPopulateCount.50._sortFields): (WebInspector.HeapSnapshotDiffDataGrid.prototype.setDataSource): (WebInspector.HeapSnapshotDiffDataGrid.prototype._baseProfileIndexChanged): (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived.addNodeIfNonZeroDiff): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived): (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren): (WebInspector.HeapSnapshotDominatorsDataGrid): (WebInspector.HeapSnapshotDominatorsDataGrid.prototype._defaultPopulateCount.25.setDataSource): (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.sortingChanged): (WebInspector.HeapSnapshotView.profileCallback): (WebInspector.HeapSnapshotView): (WebInspector.HeapSnapshotView.prototype.dispose): (WebInspector.HeapSnapshotView.prototype.get statusBarItems): (WebInspector.HeapSnapshotView.prototype.get profile): (WebInspector.HeapSnapshotView.prototype.get profileWrapper): (WebInspector.HeapSnapshotView.prototype.get baseProfile): (WebInspector.HeapSnapshotView.prototype.get baseProfileWrapper): (WebInspector.HeapSnapshotView.prototype.wasShown.profileCallback1): (WebInspector.HeapSnapshotView.prototype.wasShown.profileCallback2): (WebInspector.HeapSnapshotView.prototype.wasShown): (WebInspector.HeapSnapshotView.prototype.willHide): (WebInspector.HeapSnapshotView.prototype.onResize): (WebInspector.HeapSnapshotView.prototype.searchCanceled): (WebInspector.HeapSnapshotView.prototype.performSearch.matchesByName): (WebInspector.HeapSnapshotView.prototype.performSearch.matchesById): (WebInspector.HeapSnapshotView.prototype.performSearch.matchesQuery): (WebInspector.HeapSnapshotView.prototype.performSearch): (WebInspector.HeapSnapshotView.prototype.jumpToFirstSearchResult): (WebInspector.HeapSnapshotView.prototype.jumpToLastSearchResult): (WebInspector.HeapSnapshotView.prototype.jumpToNextSearchResult): (WebInspector.HeapSnapshotView.prototype.jumpToPreviousSearchResult): (WebInspector.HeapSnapshotView.prototype.showingFirstSearchResult): (WebInspector.HeapSnapshotView.prototype.showingLastSearchResult): (WebInspector.HeapSnapshotView.prototype._jumpToSearchResult): (WebInspector.HeapSnapshotView.prototype.refreshVisibleData): (WebInspector.HeapSnapshotView.prototype._changeBase): (WebInspector.HeapSnapshotView.prototype._changeFilter): (WebInspector.HeapSnapshotView.prototype._createToolbarWithClassNameFilter): (WebInspector.HeapSnapshotView.prototype._changeNameFilter): (WebInspector.HeapSnapshotView.prototype._profiles): (WebInspector.HeapSnapshotView.prototype._loadProfile): (WebInspector.HeapSnapshotView.prototype._loadProfileByIndex): (WebInspector.HeapSnapshotView.prototype.isDetailedSnapshot): (WebInspector.HeapSnapshotView.prototype.processLoadedSnapshot): (WebInspector.HeapSnapshotView.prototype._selectionChanged): (WebInspector.HeapSnapshotView.prototype._inspectedObjectChanged): (WebInspector.HeapSnapshotView.prototype._setRetainmentDataGridSource): (WebInspector.HeapSnapshotView.prototype._mouseDownInContentsGrid): (WebInspector.HeapSnapshotView.prototype.changeView.sortingComplete): (WebInspector.HeapSnapshotView.prototype.changeView): (WebInspector.HeapSnapshotView.prototype._changeView): (WebInspector.HeapSnapshotView.prototype._getHoverAnchor): (WebInspector.HeapSnapshotView.prototype._resolveObjectForPopover): (WebInspector.HeapSnapshotView.prototype._helpClicked.appendHelp): (WebInspector.HeapSnapshotView.prototype._helpClicked): (WebInspector.HeapSnapshotView.prototype._startRetainersHeaderDragging): (WebInspector.HeapSnapshotView.prototype._retainersHeaderDragging): (WebInspector.HeapSnapshotView.prototype._endRetainersHeaderDragging): (WebInspector.HeapSnapshotView.prototype._updateRetainmentViewHeight): (WebInspector.HeapSnapshotView.prototype._updateBaseOptions): (WebInspector.HeapSnapshotView.prototype._updateFilterOptions): (WebInspector.HeapSnapshotProfileType): (WebInspector.HeapSnapshotProfileType.prototype.get buttonTooltip): (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked): (WebInspector.HeapSnapshotProfileType.prototype.get treeItemTitle): (WebInspector.HeapSnapshotProfileType.prototype.get description): (WebInspector.HeapSnapshotProfileType.prototype.createSidebarTreeElementForProfile): (WebInspector.HeapSnapshotProfileType.prototype.createView): * inspector/front-end/ProfilesPanel.js: (WebInspector.ProfilesPanel.prototype._addHeapSnapshotChunk): (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot): (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress): * inspector/front-end/WebKit.qrc: * inspector/front-end/heapProfiler.css: (.heap-snapshot-view): (.heap-snapshot-view.visible): (.heap-snapshot-view .view): (.heap-snapshot-view .view.visible): (.heap-snapshot-view .data-grid tr:empty): (.heap-snapshot-view .data-grid): (.heap-snapshot-view .data-grid td.count-column): (.heap-snapshot-view .data-grid td.addedCount-column): (.heap-snapshot-view .data-grid td.removedCount-column): (.heap-snapshot-view .data-grid td.countDelta-column): (.heap-snapshot-view .data-grid td.addedSize-column): (.heap-snapshot-view .data-grid td.removedSize-column): (.heap-snapshot-view .data-grid td.sizeDelta-column): (.heap-snapshot-view .data-grid td.shallowSize-column): (.heap-snapshot-view .data-grid td.retainedSize-column): (.heap-snapshot-view .data-grid td.distanceToWindow-column): (.heap-snapshot-view .data-grid span.percent-column): (.heap-snapshot-view .console-formatted-object, .console-formatted-node): (.heap-snapshot-view .console-formatted-string): (.heap-snapshot-view .console-formatted-id): (.heap-snapshot-view .data-grid tr.selected *): (.heap-snapshot-view .data-grid:focus tr.selected *): (.heap-snapshot-view .delimiter): (.heap-snapshot-view .views-container): (.heap-snapshot-view .views-container .view): (.heap-snapshot-view .retaining-paths-view): (.heap-snapshot-view .class-view-grid): (.heap-snapshot-view .class-view-toolbar): (.heap-snapshot-view .class-view-toolbar input.class-name-filter): (.heap-snapshot-view .retainers-view-header): (.heap-snapshot-view .retainers-view-header .title > span): (.heap-snapshot-view tr:not(.selected) td.object-column span.highlight): (.heap-snapshot-view td.object-column span.grayed): (.heap-snapshot-help-status-bar-item .glyph): (table.heap-snapshot-help): * inspector/front-end/inspector.html: 2012-04-16 Andrey Kosyakov Web Inspector: touch pad is pain to use in lower pane of Timeline panel due two two-axis scrolling https://bugs.webkit.org/show_bug.cgi?id=83946 Reviewed by Pavel Feldman. Remove delegation of mousewheel events from lower timeline pane to the timeline overview. This disables support for moving overview window with horizontal swype over lower timeline pane, thus removing an irritating situation when we try to both change overview window and scroll lower timeline pane upon a single touchpad gesture. Those willing to move timeline window now would need to position mouse over overview. * inspector/front-end/TimelineOverviewPane.js: (WebInspector.TimelineOverviewWindow.prototype._onMouseWheel): (WebInspector.TimelineOverviewWindow.prototype._zoom): * inspector/front-end/TimelinePanel.js: (WebInspector.TimelinePanel): 2012-04-11 Philippe Normand [GStreamer] HRTFDatabaseLoader conflicts with AudioFileReader https://bugs.webkit.org/show_bug.cgi?id=78095 Reviewed by Martin Robinson. Moved the GStreamer initialization logic to a new GStreamerUtilities module, used by the MediaPlayer and the AudioContext. I also removed the static variables as gst_init_check already handles cases where it's called multiple times. * GNUmakefile.list.am: * Modules/webaudio/AudioContext.cpp: (WebCore::AudioContext::constructCommon): * platform/audio/gstreamer/AudioDestinationGStreamer.cpp: (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer): * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp: (WebCore::AudioFileReader::createBus): * platform/graphics/gstreamer/GRefPtrGStreamer.cpp: (WTF::adoptGRef): (WTF): (WTF::GstElementFactory): * platform/graphics/gstreamer/GRefPtrGStreamer.h: (WTF): * platform/graphics/gstreamer/GStreamerUtilities.cpp: Added. (WebCore): (WebCore::initializeGStreamer): * platform/graphics/gstreamer/GStreamerUtilities.h: Added. (WebCore): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::doGstInit): 2012-04-16 ChangSeok Oh Update GraphicsContext3DOpenGLES.cpp and fix some issues to build with GLES. https://bugs.webkit.org/show_bug.cgi?id=83982 Reviewed by Martin Robinson. GL_BGRA is not defined in GLESv2, so it causes build-break at readRenderingResults. To resolve this, a helper function readPixelsAndConvertToBGRAIfNecessary is added in GC3DOpenGL.cpp & GC3DOpenGLES.cpp and it's used in GC3DOpenGLCommon.cpp. And some other issues to build with GLES are gone with this patch. No new tests, since no new feature. * platform/graphics/GraphicsContext3D.h: * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp: (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary): (WebCore): * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: (WebCore::GraphicsContext3D::readRenderingResults): * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp: (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary): (WebCore): (WebCore::GraphicsContext3D::reshapeFBOs): (WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary): 2012-04-16 Xiaomei Ji [chromium] wrong justification for arabic/persian page in cr-win. https://bugs.webkit.org/show_bug.cgi?id=83227 Reviewed by Kent Tamura. Disable kashida justification if using Skia to draw. Test: fast/text/international/arabic-justify.html * platform/graphics/chromium/UniscribeHelper.cpp: (WebCore::UniscribeHelper::justify): 2012-04-16 Jia Pu Build fix. Change set 114220 broke OS X internal build. Change set 114231 attempted to fix it, but isn't entirely correct. This patch amends change set 114231. * WebCore.exp.in: * editing/DictationAlternative.cpp: (WebCore::DictationAlternative::DictationAlternative): * editing/DictationAlternative.h: (DictationAlternative): 2012-04-16 Antti Koivisto REGRESSION (r104445): Style is not recomputed on serenaandlily.com https://bugs.webkit.org/show_bug.cgi?id=83663 Reviewed by Andreas Kling. CSS class and id selectors are case insensitive in non-strict modes. The code that invalidated the scope elements used getElementByID() which is case sensitive in all modes. As a result we would fail to invalidate elements that would match a style rule but used different case in id. The new code invalidates by crawling the DOM tree. This often (when there are classes) actually faster than the existing code as we can now handle everything in a single pass. Each class scope required a crawl with the old code. The code uses the same functions as the selector matching code to get the same behavior. The maximum class limit is lifted as number of classes does not affect complexity anymore. Test: fast/css/id-or-class-before-stylesheet-strict.html * css/SelectorChecker.h: (WebCore::SelectorChecker::elementMatchesSelectorScopes): (WebCore): * dom/Document.cpp: (WebCore::Document::testAddedStylesheetRequiresStyleRecalc): (WebCore): 2012-04-16 Uday Kiran CSS3 Selectors failures on css3test.com https://bugs.webkit.org/show_bug.cgi?id=83885 Reviewed by Zoltan Herczeg. Parsing fix for CSS3 selectors :nth-child(), :nth-last-child() :nth-of-type() :nth-last-of-type() with values -n-b and n-b as they are of valid form an+b where a and b are integers. http://www.w3.org/TR/selectors/#structural-pseudos Descriptors of form n-b or -n-b, where b is number, are valid CSS identifiers. However, in NthChildMode we need to check whether this identifier is a valid nth child descriptor. The original code only checked this if the string was n- or -n- but this is not enough. We need to check everything which starts with an n- or -n- prefix. Test: css3/parsing-css3-nthchild.html * css/CSSParser.cpp: (WebCore::CSSParser::lex): 2012-04-16 Eric Carlson ASSERT in notifyChildInserted when HTMLMediaElement is removed from tree https://bugs.webkit.org/show_bug.cgi?id=83949 Reviewed by Antti Koivisto. No new tests. I was not able to create a reproducible test case, but I have been unable to reproduce the ASSERT that occassionally fired in existing tests since I have been living on these changes. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::insertedIntoDocument): Call configureMediaControls. (WebCore::HTMLMediaElement::removedFromDocument): Ditto. (WebCore::HTMLMediaElement::configureMediaControls): Don't show controls when the media element is not in a Document. 2012-04-16 Eric Carlson Layout Test media/track/track-delete-during-setup.html is hitting an ASSERT_NOT_REACHED https://bugs.webkit.org/show_bug.cgi?id=82269 Reviewed by Antti Koivisto. No new tests, already tested by media/track/track-delete-during-setup.html. * html/HTMLTrackElement.cpp: (WebCore::HTMLTrackElement::insertedIntoDocument): Don't notify the media element until/unless the track element is inserted into the document. * html/HTMLTrackElement.h: 2012-04-16 Yael Aharon [Qt][WK2] Fixed elements position is wrong after zooming. https://bugs.webkit.org/show_bug.cgi?id=83981 Reviewed by Kenneth Rohde Christiansen. When setFixedVisibleContentRect is called we mark all fixed elements in the frame for layout. In order to find these elements, RenderView maintains a list of fixed elements. They are added and removed at the same time that they are added and removed from their parent RenderBlock. The idea is taken from the iOS5.1 branch, at opensource.apple.com. Added a manual test that allows removing and adding fixed elements at will. * page/FrameView.cpp: (WebCore::FrameView::setFixedVisibleContentRect): * rendering/RenderBlock.cpp: (WebCore::RenderBlock::insertPositionedObject): (WebCore::RenderBlock::removePositionedObject): * rendering/RenderView.cpp: (WebCore::RenderView::setFixedPositionedObjectsNeedLayout): (WebCore): (WebCore::RenderView::insertFixedPositionedObject): (WebCore::RenderView::removeFixedPositionedObject): * rendering/RenderView.h: (RenderView): 2012-04-13 Pavel Feldman Web Inspector: extract ContentProvider into its own file, make NetworkRequest, Resoruce and others implement it. https://bugs.webkit.org/show_bug.cgi?id=83922 Reviewed by Yury Semikhatsky. We have two different types of requestContent methods: one on the source mapping level and one on the resource level. There are also adapters between the two. I'm aligning it all to a single requestContent method declared in ContentProvider. * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/compile-front-end.py: * inspector/front-end/BreakpointsSidebarPane.js: (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.addBreakpoint.didRequestContent): (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.addBreakpoint): * inspector/front-end/ContentProvider.js: Added. (WebInspector.ContentProvider): (WebInspector.ContentProvider.prototype.contentURL): (WebInspector.ContentProvider.prototype.requestContent): (WebInspector.ContentProvider.prototype.searchInContent): (WebInspector.ContentProvider.SearchMatch): * inspector/front-end/ContentProviders.js: (WebInspector.ScriptContentProvider.prototype.contentURL): (WebInspector.ScriptContentProvider.prototype.requestContent): (WebInspector.ConcatenatedScriptsContentProvider.prototype.contentURL): (WebInspector.ConcatenatedScriptsContentProvider.prototype.requestContent): (WebInspector.CompilerSourceMappingContentProvider.prototype.contentURL): (WebInspector.CompilerSourceMappingContentProvider.prototype.requestContent): (WebInspector.StaticContentProvider.prototype.contentURL): (WebInspector.StaticContentProvider.prototype.requestContent): * inspector/front-end/DebuggerPresentationModel.js: * inspector/front-end/ExtensionServer.js: (WebInspector.ExtensionServer.prototype._getResourceContent): * inspector/front-end/JavaScriptSourceFrame.js: (WebInspector.JavaScriptSourceFrame.prototype.requestContent): * inspector/front-end/NetworkItemView.js: (WebInspector.RequestContentView.prototype._ensureInnerViewShown.callback): (WebInspector.RequestContentView.prototype._ensureInnerViewShown): * inspector/front-end/NetworkRequest.js: (WebInspector.NetworkRequest.prototype.contentURL): (WebInspector.NetworkRequest.prototype.requestContent): (WebInspector.NetworkRequest.prototype.searchInContent): (WebInspector.NetworkRequest.prototype.populateImageSource): (WebInspector.NetworkRequest.prototype._innerRequestContent.onResourceContent): (WebInspector.NetworkRequest.prototype._innerRequestContent): * inspector/front-end/RawSourceCode.js: (WebInspector.RawSourceCode.prototype._createContentProvider): (WebInspector.RawSourceCode.prototype._createSourceMapping.didRequestContent): (WebInspector.RawSourceCode.prototype._createSourceMapping): * inspector/front-end/Resource.js: (WebInspector.Resource.prototype.contentURL): (WebInspector.Resource.prototype.requestContent): (WebInspector.Resource.prototype._innerRequestContent.callback): (WebInspector.Resource.prototype._innerRequestContent): (WebInspector.ResourceRevision.prototype.contentURL): (WebInspector.ResourceRevision.prototype.requestContent.callbackWrapper): (WebInspector.ResourceRevision.prototype.requestContent): (WebInspector.ResourceRevision.prototype.searchInContent): * inspector/front-end/ResourceView.js: (WebInspector.ResourceSourceFrame.prototype.requestContent): (WebInspector.ResourceSourceFrame.prototype._contentChanged): (WebInspector.ResourceRevisionSourceFrame.prototype.requestContent): * inspector/front-end/ScriptFormatter.js: * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.requestVisibleScriptOutline): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype.setContent): * inspector/front-end/UISourceCode.js: (WebInspector.UISourceCode): (WebInspector.UISourceCode.prototype.requestContent): (WebInspector.UISourceCode.prototype._didRequestContent): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: 2012-04-16 Jason Liu [BlackBerry] Missing readyState 2 when a XMLHttpRequest calls xmlhttp.open("HEAD","notExist.html",true). https://bugs.webkit.org/show_bug.cgi?id=83866 Reviewed by George Staikos. We receive 404 for a XMLHttpRequest which calls open("HEAD", "notExist.html", true). There are no data received because its method is HEAD. This case shouldn't be treated as a failure. Test: http/tests/xmlhttprequest/xmlhttprequest-check-head-readystate-for-404.html * platform/network/blackberry/NetworkJob.cpp: (WebCore::NetworkJob::handleNotifyClose): 2012-04-16 Jon Lee Build fix. * WebCore.exp.in: * editing/DictationAlternative.cpp: (WebCore::DictationAlternative::DictationAlternative): * editing/DictationAlternative.h: (DictationAlternative): 2012-04-16 George Staikos Fix signed/unsigned mismatch warning for BlackBerry debug builds. https://bugs.webkit.org/show_bug.cgi?id=80790 Reviewed by Rob Buis. * platform/blackberry/CookieMap.cpp: (WebCore::CookieMap::removeCookieAtIndex): 2012-04-15 Kent Tamura WebCore::weekDayShortLabels() for ICU always returns the fallback labels https://bugs.webkit.org/show_bug.cgi?id=83991 Reviewed by Hajime Morita. We need to specfiy 1-based index to udat_getSymbols() with UDAT_SHORT_WEEKDAYS. Also, udat_countSymbols() with UDAT_SHORT_WEEKDAYS returns 8. No new tests because this behavior depends on locale setting. * platform/text/LocalizedCalendarICU.cpp: (WebCore::createLabelVector): Add startIndex argument. (WebCore::createMonthLabels): Pass UDAT_JANUARRY(0) as startIndex to createLabelVector(). (WebCore::createWeekDayShortLabels): Pass UDAT_SUNDAY(1) as startIndex to createLabelVector(). 2012-04-15 MORITA Hajime Unreviewed attempt to chromium-win build fix. * editing/DictationAlternative.h: 2012-04-15 Noel Gordon Align JSC/V8 bindings canvas.toDataURL() code flows https://bugs.webkit.org/show_bug.cgi?id=84003 Reviewed by Eric Seidel. Align JSC/V8 bindings canvas.toDataURL() code flow so that the binding code implementations read alike. No new tests. Covered by existing cnavas toDataURL tests. * bindings/js/JSHTMLCanvasElementCustom.cpp: (WebCore::JSHTMLCanvasElement::toDataURL): 2012-04-15 Jia Pu Introducing DictationCommand. https://bugs.webkit.org/show_bug.cgi?id=83549 Reviewed by Hajime Morita. No new tests. This patch doesn't introduce any change of new functionality. It prepares for additional changes which will inlude tests. On OS X, alternative dictation results need to be stored as document markers. This patch introduces following changes to achieve this: 1. Added DictationMarkDetails to store non-string type maker detail. 2. Introduce DictationCommand, which is similor to TypingCommand, but allows inserting text with attached markers. 3. Added Editor::insertDictatedText as interaface to WebKit and WebKit2. 4. Added struct DictationAlternative to pass dictation related info from WebKit to WebCore. Several fragments of code in TypingCommand can be also used by DictationCommand. So this patch introduced a new class, TextInsertionBaseCommand. It's a subclass of CompositeEditCommmand, and base class of both TypingCommand and DictationCommand. This patch also extends InsertTextCommand class. Its constructor will take an TextInsertionMarkerSupplier object. After text is inserted to a node, InsertTextCommand would give marker supplier a chance to add document markers to the inserted text. * CMakeLists.txt: * GNUmakefile.list.am: * Target.pri: * WebCore.exp.in: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * dom/Document.cpp: (WebCore::eventTargetNodeForDocument): Moved this function from EventHandler so that it can be used by AlternativeTextController. (WebCore): * dom/Document.h: (WebCore): * dom/DocumentMarker.cpp: (WebCore::DocumentMarker::DocumentMarker): New constructor that takes a pointer to DocumentMarkerDetails object. (WebCore): * dom/DocumentMarker.h: (WebCore::DocumentMarker::AllMarkers::AllMarkers): (DocumentMarker): * dom/DocumentMarkerController.cpp: (WebCore::DocumentMarkerController::addMarker): (WebCore): * dom/DocumentMarkerController.h: (DocumentMarkerController): * dom/TextEvent.cpp: (WebCore::TextEvent::createForDictation): (WebCore): (WebCore::TextEvent::TextEvent): * dom/TextEvent.h: Added member variable for dictation alternatives. (TextEvent): (WebCore::TextEvent::isDictation): (WebCore::TextEvent::dictationAlternatives): * dom/TextEventInputType.h: * editing/AlternativeTextController.cpp: (WebCore::AlternativeTextController::AlternativeTextController): (WebCore::AlternativeTextController::insertDictatedText): Used by Editor::insertDictatedText(). (WebCore): * editing/AlternativeTextController.h: (WebCore): (DictationMarkerDetails): (WebCore::DictationMarkerDetails::create): (WebCore::DictationMarkerDetails::originalText): (WebCore::DictationMarkerDetails::dictationContext): (WebCore::DictationMarkerDetails::DictationMarkerDetails): (AlternativeTextController): * editing/CompositeEditCommand.h: (WebCore::CompositeEditCommand::isDictationCommand): * editing/DictationAlternative.cpp: Added. (WebCore): (WebCore::DictationAlternative::DictationAlternative): * editing/DictationAlternative.h: Added. Data structure for passing dictation related data from WebKit to WebCore. (DictationAlternative): (WebCore): * editing/DictationCommand.cpp: Added. (WebCore): (DictationCommandLineOperation): (WebCore::DictationCommandLineOperation::DictationCommandLineOperation): (WebCore::DictationCommandLineOperation::operator()): (DictationMarkerSupplier): (WebCore::DictationMarkerSupplier::create): (WebCore::DictationMarkerSupplier::addMarkersToTextNode): (WebCore::DictationMarkerSupplier::DictationMarkerSupplier): (WebCore::DictationCommand::DictationCommand): (WebCore::DictationCommand::insertText): (WebCore::DictationCommand::doApply): (WebCore::DictationCommand::insertTextRunWithoutNewlines): (WebCore::DictationCommand::insertParagraphSeparator): (WebCore::DictationCommand::collectDictationAlternativesInRange): * editing/DictationCommand.h: Added. (WebCore): (DictationCommand): (WebCore::DictationCommand::isDictationCommand): (WebCore::DictationCommand::create): * editing/EditingAllInOne.cpp: * editing/Editor.cpp: (WebCore::Editor::insertDictatedText): Main interface that allows WebKit passes in text with attached dictation information. (WebCore): (WebCore::Editor::insertTextWithoutSendingTextEvent): (WebCore::Editor::updateMarkersForWordsAffectedByEditing): * editing/Editor.h: (Editor): * editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::InsertTextCommand): (WebCore): (WebCore::InsertTextCommand::doApply): * editing/InsertTextCommand.h: (WebCore): (TextInsertionMarkerSupplier): Interface to allow caller of InsertTextCommand to add document markers to inserted text. (WebCore::TextInsertionMarkerSupplier::~TextInsertionMarkerSupplier): (WebCore::TextInsertionMarkerSupplier::TextInsertionMarkerSupplier): (WebCore::InsertTextCommand::createWithMarkerSupplier): (InsertTextCommand): * editing/TextInsertionBaseCommand.cpp: Added. This class contains functions shared by TypingCommand and DictationCommand. (WebCore): (WebCore::TextInsertionBaseCommand::TextInsertionBaseCommand): (WebCore::TextInsertionBaseCommand::applyTextInsertionCommand): (WebCore::dispatchBeforeTextInsertedEvent): (WebCore::canAppendNewLineFeedToSelection): * editing/TextInsertionBaseCommand.h: Added. (WebCore): (TextInsertionBaseCommand): (WebCore::TextInsertionBaseCommand::~TextInsertionBaseCommand): (WebCore::forEachLineInString): * editing/TypingCommand.cpp: (TypingCommandLineOperation): (WebCore::TypingCommandLineOperation::TypingCommandLineOperation): (WebCore::TypingCommandLineOperation::operator()): (WebCore::TypingCommand::TypingCommand): (WebCore::TypingCommand::insertText): (WebCore::TypingCommand::insertLineBreak): (WebCore::TypingCommand::insertParagraphSeparator): * editing/TypingCommand.h: * page/EventHandler.cpp: * rendering/InlineTextBox.cpp: (WebCore::lineStyleForMarkerType): (WebCore::InlineTextBox::paintDocumentMarker): Renamed existing function to reflect new funcationality. (WebCore::InlineTextBox::paintDocumentMarkers): * rendering/InlineTextBox.h: (InlineTextBox): * testing/Internals.cpp: (WebCore::markerTypesFrom): 2012-04-15 James Robinson [chromium] LayerRendererChromium shouldn't know anything about CCLayerImpl https://bugs.webkit.org/show_bug.cgi?id=83415 Reviewed by Adrienne Walker. This removes all knowledge of CCLayerImpl from LayerRendererChromium. The most significant move code-wise is moving the HUD up to live on CCLayerTreeHostImpl, since it's aware of the layer tree. This involves two changes. First, CCHeadsUpDisplay is in charge of populating a ManagedTexture but the actual drawing code now lives in LayerRendererChromium. Second, since we don't recreate CCLayerTreeHostImpl on a lost context, the font atlas ownership is much simpler. Now a CCFontAtlas is created on the main thread if needed and passed asynchronously to the CCHeadsUpDisplay which takes ownership of the atlas. * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::create): (WebCore::LayerRendererChromium::initialize): (WebCore::LayerRendererChromium::~LayerRendererChromium): (WebCore::LayerRendererChromium::beginDrawingFrame): (WebCore::LayerRendererChromium::drawHeadsUpDisplay): (WebCore): (WebCore::LayerRendererChromium::finishDrawingFrame): (WebCore::LayerRendererChromium::swapBuffers): * platform/graphics/chromium/LayerRendererChromium.h: (LayerRendererChromiumClient): (LayerRendererChromium): * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp: (WebCore::CCHeadsUpDisplay::CCHeadsUpDisplay): (WebCore::CCHeadsUpDisplay::setFontAtlas): (WebCore): (WebCore::CCHeadsUpDisplay::enabled): (WebCore::CCHeadsUpDisplay::showPlatformLayerTree): (WebCore::CCHeadsUpDisplay::draw): (WebCore::CCHeadsUpDisplay::drawHudContents): * platform/graphics/chromium/cc/CCHeadsUpDisplay.h: (WebCore): (WebCore::CCHeadsUpDisplay::create): (CCHeadsUpDisplay): * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: (WebCore::CCLayerTreeHost::initialize): * platform/graphics/chromium/cc/CCLayerTreeHost.h: (CCLayerTreeHost): * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl): (WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl): (WebCore::CCLayerTreeHostImpl::canDraw): (WebCore::CCLayerTreeHostImpl::calculateRenderPasses): (WebCore::CCLayerTreeHostImpl::prepareToDraw): (WebCore::CCLayerTreeHostImpl::drawLayers): (WebCore::CCLayerTreeHostImpl::swapBuffers): (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer): (WebCore::CCLayerTreeHostImpl::setFullRootLayerDamage): (WebCore::CCLayerTreeHostImpl::layerTreeAsText): (WebCore): (WebCore::CCLayerTreeHostImpl::setFontAtlas): (WebCore::CCLayerTreeHostImpl::dumpRenderSurfaces): * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: (CCLayerTreeHostImpl): (WebCore::CCLayerTreeHostImpl::rootLayer): * platform/graphics/chromium/cc/CCProxy.h: (WebCore): (CCProxy): * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp: (WebCore::CCSingleThreadProxy::initializeLayerRenderer): (WebCore::CCSingleThreadProxy::recreateContext): (WebCore::CCSingleThreadProxy::setFontAtlas): (WebCore): * platform/graphics/chromium/cc/CCSingleThreadProxy.h: * platform/graphics/chromium/cc/CCThreadProxy.cpp: (WebCore::CCThreadProxy::initializeLayerRendererOnImplThread): (WebCore::CCThreadProxy::setFontAtlas): (WebCore): (WebCore::CCThreadProxy::setFontAtlasOnImplThread): (WebCore::CCThreadProxy::recreateContextOnImplThread): * platform/graphics/chromium/cc/CCThreadProxy.h: (CCThreadProxy): 2012-04-15 Antti Koivisto Capture CSS parser context https://bugs.webkit.org/show_bug.cgi?id=83998 Reviewed by Andreas Kling. Currently the CSS parser calls to the Document and StyleSheetInternal objects to get settings, base URL etc. The required information should be passed in on parser construction instead. The parser should not need to know about the document at all. The patch adds CSSParserContext struct that captures the parsing context. StyleSheetInternal saves the parsing context and reuses it for any further parsing. If the same stylesheet source is parsed with an identical context then the resulting stylesheet structure will be identical. This will allow sharing parsed stylesheets in the future. * css/CSSGrammar.y: * css/CSSImportRule.cpp: (WebCore::StyleRuleImport::setCSSStyleSheet): * css/CSSMediaRule.cpp: (WebCore::CSSMediaRule::insertRule): * css/CSSPageRule.cpp: (WebCore::CSSPageRule::setSelectorText): * css/CSSParser.cpp: (WebCore): (WebCore::strictCSSParserContext): (WebCore::CSSParserContext::CSSParserContext): (WebCore::CSSParser::CSSParser): (WebCore::CSSParser::parseKeyframeRule): (WebCore::CSSParser::parseValue): (WebCore::CSSParser::parseSelector): (WebCore::CSSParser::completeURL): (WebCore::CSSParser::parseContent): (WebCore::CSSParser::parseAttr): (WebCore::CSSParser::parseFillImage): (WebCore::CSSParser::parseFontFaceSrcURI): (WebCore::CSSParser::parseFontFaceSrc): (WebCore::CSSParser::parseBorderImage): (WebCore::CSSParser::parseImageSet): (WebCore::CSSParser::parseCustomFilter): (WebCore::CSSParser::parseFilter): (WebCore::CSSParser::cssRegionsEnabled): (WebCore::CSSParser::parseFlowThread): (WebCore::CSSParser::createMediaRule): (WebCore::CSSParser::createStyleRule): (WebCore::CSSParser::createFontFaceRule): (WebCore::CSSParser::createPageRule): (WebCore::CSSParser::createKeyframe): * css/CSSParser.h: (CSSParser): (WebCore::CSSParser::inStrictMode): (WebCore::CSSParser::inQuirksMode): (WebCore::CSSParser::validUnit): * css/CSSParserMode.h: (WebCore): (CSSParserContext): * css/CSSRule.h: (WebCore::CSSRule::parserContext): (CSSRule): * css/CSSStyleRule.cpp: (WebCore::CSSStyleRule::setSelectorText): * css/CSSStyleSheet.cpp: (WebCore::StyleSheetInternal::StyleSheetInternal): (WebCore::StyleSheetInternal::parseString): (WebCore::StyleSheetInternal::parseStringAtLine): (WebCore): (WebCore::StyleSheetInternal::updateBaseURL): (WebCore::StyleSheetInternal::completeURL): (WebCore::CSSStyleSheet::insertRule): * css/CSSStyleSheet.h: (StyleSheetInternal): (WebCore::StyleSheetInternal::parserContext): (WebCore::StyleSheetInternal::charset): (WebCore::StyleSheetInternal::setFinalURL): (WebCore::StyleSheetInternal::baseURL): * css/CSSValuePool.cpp: * css/StylePropertySet.cpp: (WebCore::StylePropertySet::parseDeclaration): * css/WebKitCSSKeyframesRule.cpp: (WebCore::WebKitCSSKeyframesRule::insertRule): * dom/Document.cpp: (WebCore::Document::webkitGetFlowByName): (WebCore::Document::pageUserSheet): (WebCore::Document::pageGroupUserSheets): * dom/Element.cpp: (WebCore::Element::webkitMatchesSelector): * dom/Node.cpp: (WebCore::Node::querySelector): (WebCore::Node::querySelectorAll): * dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::parseStyleSheet): * dom/StyleElement.cpp: (WebCore::StyleElement::createSheet): * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::setCSSStyleSheet): * html/shadow/ContentSelectorQuery.cpp: (WebCore::ContentSelectorQuery::ContentSelectorQuery): * inspector/InspectorStyleSheet.cpp: (WebCore::InspectorStyle::setPropertyText): (WebCore::InspectorStyleSheet::reparseStyleSheet): (WebCore::InspectorStyleSheet::ensureSourceData): (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges): 2012-04-15 Noel Gordon [Cairo] Separate image encoding from dataURL construction https://bugs.webkit.org/show_bug.cgi?id=83975 Reviewed by Martin Robinson. Remove the implicit assumption that a dataURL is the only desired output format of the image encoding phase. No new tests. Covered by existing canvas toDataURL tests. * platform/graphics/cairo/ImageBufferCairo.cpp: (WebCore::writeFunction): Rename closure to output. (WebCore::encodeImage): Output the encoded image to the provided Vector. PNG format is only supported per the Cairo encoding MIMETypeRegistry. (WebCore): (WebCore::ImageBuffer::toDataURL): Refactor to use encodeImage(). 2012-04-15 Yuta Kitamura Leak in WebSocketChannel with workers/worker-reload.html (part 2) https://bugs.webkit.org/show_bug.cgi?id=83749 Reviewed by David Levin. Second attempt to remove leaks around WorkerThreadableWebSocketChannel. No new tests, as this patch does not impose any functional change. * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp: (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper): (WebCore::ThreadableWebSocketChannelClientWrapper::failedWebSocketChannelCreation): (WebCore::ThreadableWebSocketChannelClientWrapper::setFailedWebSocketChannelCreation): * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h: Add a boolean flag indicating whether Bridge::initialize() has exited without receiving a pointer to the peer object. * Modules/websockets/WorkerThreadableWebSocketChannel.cpp: (WebCore::WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask::create): (WebCore::WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask::WorkerContextDidInitializeTask): (WebCore::WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask::performTask): Kick mainThreadDestroy() to delete the peer if the bridge has failed to receive a pointer to the peer (waitForMethodCompletion() exited due to message queue's termination). (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize): (WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize): * Modules/websockets/WorkerThreadableWebSocketChannel.h: (WorkerThreadableWebSocketChannel): Make WorkerContextDidInitializeTask an inner class of WorkerThreadableWebSocketChannel so it can refer WorkerThreadableWebSocketChannel's static member function (mainThreadDestroy()). 2012-04-14 Emil A Eklund Fix pixelSnapping for CalendarPicker, MediaControl and ScrollbarPart https://bugs.webkit.org/show_bug.cgi?id=83929 Reviewed by Eric Seidel. Update CalendarPickerElement and MediaControlElements to use pixelSnappedSize in preparation for turning on subpixel support. Update RenderScrollbarPart to pixel snap rect before painting to ensure that it is painted on device pixel boundaries. No new tests, no change in functionality. * html/shadow/CalendarPickerElement.cpp: (WebCore::CalendarPickerElement::openPopup): * html/shadow/MediaControlElements.cpp: (WebCore::RenderMediaVolumeSliderContainer::layout): * rendering/RenderScrollbarPart.cpp: (WebCore::RenderScrollbarPart::paintIntoRect): 2012-04-14 Kent Tamura Day of week labels are wrong if WebCore::firstDayOfWeek() is not 0 https://bugs.webkit.org/show_bug.cgi?id=83990 Reviewed by Kentaro Hara. We passed the "weekStartDay" property value as a string. CalendarPickerElement::writeDocument() created: weekStartDay: "1", and the JavaScript code used it in the following code: dayLabels[(weekStartDay + i) % 7] If weekStartDay was "1", the expression (weekStartDay + i) produced "10", "11", "12", ... We expected "1", "2", "3", ... We need to pass the "weekStartDay" property as a number. No new tests because we have no ways to test this for now. We'll introduce tests for the calendar picker later. * html/shadow/CalendarPickerElement.cpp: (WebCore::addProperty): Add addProperty() function for a number. (WebCore::CalendarPickerElement::writeDocument): Pass a number, not a serialized number. 2012-04-14 Joe Thomas Viewport-percentage Length units does not work for Replaced elements size https://bugs.webkit.org/show_bug.cgi?id=83425 Reviewed by Antti Koivisto. Added the support for viewport-percentage length units while calculating the width/height of replaced elements. Tests: css3/viewport-percentage-lengths/viewport-percentage-image-size.html * platform/Length.h: (WebCore::Length::isSpecified): * rendering/RenderBox.cpp: (WebCore::RenderBox::computeReplacedLogicalWidthUsing): 2012-04-14 Joe Thomas CSSStyleDeclaration.getPropertyValue() for 'border-radius' returns null when value is set https://bugs.webkit.org/show_bug.cgi?id=80736 Reviewed by Antti Koivisto. Added support for fetching the value of 'border-radius' CSS property which was missing. Test: fast/css/border-radius-property-value.html * css/StylePropertySet.cpp: (WebCore::StylePropertySet::getPropertyValue): 2012-04-14 David Hyatt https://bugs.webkit.org/show_bug.cgi?id=83826 Wrong Font code path was chosen after r114032. The TextRun constructor has an additional argument that needs to be included if rounding hacks are mentioned. Reviewed by Dan Bernstein. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawTextInternal): * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintItemForeground): * rendering/break_lines.cpp: (WebCore::nextBreakablePosition): 2012-04-14 Noel Gordon [Cairo] ImageBuffer::toDataURL(): improve error handling, add mimeType ASSERTs https://bugs.webkit.org/show_bug.cgi?id=83569 Reviewed by Eric Seidel. No new tests. Covered by exiting fast/canvas/*toDataURL* tests. * platform/graphics/cairo/ImageBufferCairo.cpp: (WebCore::writeFunction): Return write success or failure with the appropriate cairo status code per http://cairographics.org/manual/cairo-PNG-Support.html (WebCore::ImageBuffer::toDataURL): Add mimeType ASSERT()s. ensures that a valid mimeType (supported by the port) is sent to toDataURL() calls. Check for encoding failure and return "data:," if so. 2012-04-13 David Reveman [Chromium] Avoid unnecessary full tile updates for checkerboard tiles. https://bugs.webkit.org/show_bug.cgi?id=83804 Reviewed by James Robinson. Cleanup code that determines if we need to use a buffered update and avoid buffering of tiles that are not in use by the impl thread. Tests: CCLayerTreeHostTestAtomicCommitWithPartialUpdate.runMultiThread TiledLayerChromiumTest.partialUpdates * platform/graphics/chromium/TiledLayerChromium.cpp: (UpdatableTile): (WebCore::UpdatableTile::UpdatableTile): (WebCore::TiledLayerChromium::pushPropertiesTo): (WebCore::TiledLayerChromium::tileOnlyNeedsPartialUpdate): (WebCore::TiledLayerChromium::tileNeedsBufferedUpdate): (WebCore::TiledLayerChromium::updateTiles): * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: (WebCore::CCLayerTreeHost::bufferedUpdates): (WebCore): * platform/graphics/chromium/cc/CCLayerTreeHost.h: (CCLayerTreeHost): 2012-04-13 Dana Jansens [chromium] Cleanup texture memory eviction when LayerTreeHost becomes invisible https://bugs.webkit.org/show_bug.cgi?id=83899 Reviewed by Adrienne Walker. When a LTH becomes invisible, the texture eviction is spread out across two different functions and is not entirely clear. We move all the logic together into a single place in didBecomeInvisibleOnImplThread() and make the consequences of the current code more clear. Covered by existing tests. * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: (WebCore::CCLayerTreeHost::deleteContentsTexturesOnImplThread): (WebCore::CCLayerTreeHost::setVisible): (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread): 2012-04-13 Sheriff Bot Unreviewed, rolling out r114036. http://trac.webkit.org/changeset/114036 https://bugs.webkit.org/show_bug.cgi?id=83969 Breaks gmail.com causing it to never finish loading (Requested by danakj on #webkit). * bindings/scripts/CodeGeneratorJS.pm: (GenerateHeader): (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNamedConstructorCallback): (GenerateImplementation): * bindings/scripts/IDLAttributes.txt: * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::JSTestObj::createPrototype): * bindings/scripts/test/JS/JSTestObj.h: * bindings/scripts/test/TestObj.idl: * bindings/scripts/test/V8/V8Float64Array.cpp: (WebCore): * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp: (WebCore): * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp: (WebCore): * bindings/scripts/test/V8/V8TestEventConstructor.cpp: (WebCore): * bindings/scripts/test/V8/V8TestEventTarget.cpp: (WebCore): * bindings/scripts/test/V8/V8TestInterface.cpp: (WebCore): * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp: (WebCore): * bindings/scripts/test/V8/V8TestNamedConstructor.cpp: (WebCore): * bindings/scripts/test/V8/V8TestNode.cpp: (WebCore): * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore): * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp: (WebCore): * bindings/v8/NPV8Object.cpp: (WebCore::npObjectTypeInfo): * bindings/v8/V8BindingPerContextData.cpp: (WebCore::V8BindingPerContextData::init): (WebCore::V8BindingPerContextData::createWrapperFromCacheSlowCase): (WebCore::V8BindingPerContextData::constructorForTypeSlowCase): * bindings/v8/V8BindingPerContextData.h: (V8BindingPerContextData): * bindings/v8/V8HiddenPropertyName.h: (WebCore): * bindings/v8/WrapperTypeInfo.h: (WrapperTypeInfo): * bindings/v8/custom/V8HTMLImageElementConstructor.cpp: (WebCore): * dom/NodeList.idl: 2012-04-13 Alexandre Elias [chromium] Add null pointer check to animatePageScale https://bugs.webkit.org/show_bug.cgi?id=83940 Reviewed by James Robinson. Add null pointer check to startPageScaleAnimation. If the root scroll layer goes away in the middle of a page scale animation, there can be a null pointer access here. No new tests. * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: (WebCore::CCLayerTreeHostImpl::animatePageScale): 2012-04-13 Dana Jansens [chromium] Replicas should be included in the computed occlusion https://bugs.webkit.org/show_bug.cgi?id=82262 Reviewed by Adrienne Walker. When merging a surface's occlusion up to its target, make a copy of it where the replica will be as well, and make sure that occlusion from a RenderSurface does not leave its clipRect. Unit test: CCOcclusionTrackerTestReplicaDoesOcclude CCOcclusionTrackerTestReplicaWithClipping CCOcclusionTrackerTestSurfaceChildOfSurface * platform/graphics/chromium/RenderSurfaceChromium.cpp: (WebCore::RenderSurfaceChromium::hasReplica): (WebCore): * platform/graphics/chromium/RenderSurfaceChromium.h: (RenderSurfaceChromium): * platform/graphics/chromium/cc/CCOcclusionTracker.cpp: (WebCore::transformSurfaceOpaqueRegion): (WebCore::::leaveToTargetRenderSurface): 2012-04-13 Raymond Liu AudioContext createChannelMerger() method should have optional argument for number of inputs. https://bugs.webkit.org/show_bug.cgi?id=83759 Reviewed by Chris Rogers. Check https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html for the optional argument. Test: webaudio/audiochannelmerger-basic.html * Modules/webaudio/AudioChannelMerger.cpp: (WebCore): (WebCore::AudioChannelMerger::create): (WebCore::AudioChannelMerger::AudioChannelMerger): * Modules/webaudio/AudioChannelMerger.h: (AudioChannelMerger): * Modules/webaudio/AudioContext.cpp: (WebCore::AudioContext::createChannelMerger): (WebCore): * Modules/webaudio/AudioContext.h: (AudioContext): * Modules/webaudio/AudioContext.idl: 2012-04-13 Dana Jansens [chromium] Remove viewport memory restrictions https://bugs.webkit.org/show_bug.cgi?id=83316 Reviewed by Adrienne Walker. We remove the memory restriction on web pages based on viewport size on desktop. This is causing pages that have complex use of layers to end up hitting our memory limits, and moreso when the window is small. Page complexity is not really a function of the viewport size. We drop the mininum memory limit entirely, and just evict all unprotected textures instead. Covered by existing tests. * platform/graphics/chromium/TextureManager.cpp: (WebCore::TextureManager::highLimitBytes): (WebCore::TextureManager::reclaimLimitBytes): * platform/graphics/chromium/TextureManager.h: (TextureManager): * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: (WebCore::CCLayerTreeHost::beginCommitOnImplThread): (WebCore::CCLayerTreeHost::setVisible): (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread): (WebCore::CCLayerTreeHost::updateLayers): 2012-04-13 Ken Buchanan Optimize tracking of intruding floats being removed from RenderBlock during layout https://bugs.webkit.org/show_bug.cgi?id=82928 Reviewed by David Hyatt. Performance tweaks in RenderBlock layout as a follow up to r112935. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::clearFloats): 2012-04-13 Mihnea Ovidenie [CSSRegions]Implement NamedFlow::contentNodes attribute https://bugs.webkit.org/show_bug.cgi?id=80134 Reviewed by David Hyatt. The named flow content nodes collection contains those nodes with webkitFlowInto property set to 'flow'. In the list, the nodes are placed in document order. Nodes with display:none are also part of the list. The list of nodes is returned as a static node list. The content nodes are stored in RenderNamedFlowThread. The content nodes are added to the list in NodeRenderingContext::moveToFlowThreadIfNeeded and removed from the list in Element::detach. When an element -webkit-flow-into property is changed, the element is detached and attached. I have also added a bit in NodeFlags to mark that an element is part of a named flow (and the corresponding inNamedFlow/setInNamedFlow/clearInNamedFlow functions). Test: fast/regions/webkit-named-flow-content-nodes.html * dom/Document.cpp: (WebCore::Document::webkitGetFlowByName): * dom/Document.h: * dom/Element.cpp: (WebCore::Element::detach): * dom/Node.h: (WebCore::Node::inNamedFlow): (WebCore::Node::setInNamedFlow): (WebCore::Node::clearInNamedFlow): (Node): * dom/NodeRenderingContext.cpp: (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded): * dom/WebKitNamedFlow.cpp: (WebCore::WebKitNamedFlow::contentNodes): (WebCore): * dom/WebKitNamedFlow.h: (WebKitNamedFlow): * dom/WebKitNamedFlow.idl: * rendering/FlowThreadController.cpp: (WebCore::FlowThreadController::registerNamedFlowContentNode): (WebCore): (WebCore::FlowThreadController::unregisterNamedFlowContentNode): * rendering/FlowThreadController.h: (FlowThreadController): * rendering/RenderNamedFlowThread.cpp: (WebCore): (WebCore::RenderNamedFlowThread::registerNamedFlowContentNode): (WebCore::RenderNamedFlowThread::unregisterNamedFlowContentNode): * rendering/RenderNamedFlowThread.h: (WebCore): (RenderNamedFlowThread): (WebCore::RenderNamedFlowThread::contentNodes): (WebCore::RenderNamedFlowThread::hasContentNode): 2012-04-13 Jessie Berlin Remove the calls to CRASH() from ResourceLoader.cpp. https://bugs.webkit.org/show_bug.cgi?id=83962 Reviewed by Alexey Proskuryakov. They were added in r91316 to aid debugging for the issue fixed in r105556 and r106130. * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willSendRequest): (WebCore::ResourceLoader::didSendData): (WebCore::ResourceLoader::didReceiveResponse): (WebCore::ResourceLoader::didReceiveData): (WebCore::ResourceLoader::didFinishLoading): (WebCore::ResourceLoader::didFail): (WebCore::ResourceLoader::wasBlocked): (WebCore::ResourceLoader::cannotShowURL): (WebCore::ResourceLoader::shouldUseCredentialStorage): (WebCore::ResourceLoader::willCacheResponse): 2012-04-13 Xiaomei Ji REGRESSION(r102190) [chromium] text rendering (font and font size) in some Arabic/Persian page is wrong when using certain fonts https://bugs.webkit.org/show_bug.cgi?id=83523 Reviewed by Kent Tamura. Revert r102190. Convert characters being treatAsSpace to white space. * platform/graphics/chromium/UniscribeHelper.cpp: (WebCore::UniscribeHelper::fillRuns): (WebCore::UniscribeHelper::adjustSpaceAdvances): 2012-04-13 Timothy Hatcher Change how the Web Insector is installed on Mac builds. Reviewed by Mark Rowe. * WebCore.xcodeproj/project.pbxproj: Updated Copy Inspector Resources and Streamline Inspector Source build phases. 2012-04-13 Jer Noble Video at apple.com gets standard controls in addition to custom controls after returning from full screen https://bugs.webkit.org/show_bug.cgi?id=83939 Reviewed by Eric Carlson. No new tests; DRT and WKTR don't have the infrastructure to test full-screen animation related bugs. Instead of asking the media element whether it is in full screen or not, rely on when the media root element was told that it enteredFullscreen() or exitedFullscreen(), which may occur at a different time than the media element due to animations. * html/shadow/MediaControlRootElement.cpp: (WebCore::MediaControlRootElement::reset): (WebCore::MediaControlRootElement::playbackStarted): (WebCore::MediaControlRootElement::enteredFullscreen): (WebCore::MediaControlRootElement::exitedFullscreen): (WebCore::MediaControlRootElement::defaultEventHandler): (WebCore::MediaControlRootElement::startHideFullscreenControlsTimer): (WebCore::MediaControlRootElement::hideFullscreenControlsTimerFired): * html/shadow/MediaControlRootElement.h: (MediaControlRootElement): Added m_isFullscreen; 2012-04-13 Jer Noble fullscreen/video-controls-drag.html failing on Mac https://bugs.webkit.org/show_bug.cgi?id=81176 Reviewed by Eric Carlson. No new tests. Fixes fullscreen/video-controls-drag.html. Regressed in r110409. When the -webkit-media-controls-panel were changed from position:absolute to position:relative, this broke dragging of the controls in fullscreen, which relies on the panel being absolutely positioned to do its drag positioning. Change the way drag positioning is calculated to accommodate position:relative. * css/fullscreenQuickTime.css: (video:-webkit-full-screen::-webkit-media-controls-panel): Instead of bottom:50px, use margin-bottom:50px to push panel up from the bottom of the screen. * html/shadow/MediaControlElements.cpp: (WebCore::MediaControlPanelElement::startDrag): Do not ask for the current renderer location. (WebCore::MediaControlPanelElement::continueDrag): Use the delta between the event locations only to calculate the new panel position. * html/shadow/MediaControlElements.h: 2012-04-13 Simon Fraser Compositing layers not updated after scroll in WebKit1 https://bugs.webkit.org/show_bug.cgi?id=83945 Reviewed by James Robinson. Fix the WebKit1 code path to correctly update compositing layers after a scroll, by calling updateFixedElementsAfterScrolling() from scrollPositionChangedViaPlatformWidget(). Covered by existing tests. * page/FrameView.cpp: (WebCore::FrameView::scrollPositionChangedViaPlatformWidget): 2012-04-13 Dean Jackson Don't process filters if the input region is exceptionally large. https://bugs.webkit.org/show_bug.cgi?id=83317 Reviewed by Simon Fraser. An extremely large element causes problems with filters, either by taking too long to compute the output or using too much memory. The filter engine already has some constants for maximum expected size. Make sure the render tree checks them before deciding to apply effects. Tests: css3/filters/huge-region-composited.html css3/filters/huge-region.html * platform/graphics/filters/FilterEffect.cpp: (WebCore::FilterEffect::apply): * rendering/FilterEffectRenderer.cpp: (WebCore): (WebCore::isFilterSizeValid): (WebCore::FilterEffectRenderer::build): (WebCore::FilterEffectRenderer::updateBackingStore): (WebCore::FilterEffectRendererHelper::beginFilterEffect): * rendering/FilterEffectRenderer.h: (FilterEffectRenderer): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::updateOrRemoveFilterEffect): 2012-04-13 Anna Cavender Queue the cuechange event on HTMLTrackElement for proper sorting. https://bugs.webkit.org/show_bug.cgi?id=83858 Reviewed by Eric Carlson. No new tests. Updates to media/track/track-cues-cuechange.html and media/track/track-mode.html * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Add HTMLTrackElement's cuechange event to the event queue rather than firing it synchronously. * html/track/LoadableTextTrack.cpp: Remove fireCueChangeEvent() as it is no longer used. * html/track/LoadableTextTrack.h: Ditto. * html/track/TextTrack.h: (TextTrack): Ditto. 2012-04-11 Antonio Gomes Be more restrictive when adding ScrollableArea's to FrameView's ScrollableArea's map https://bugs.webkit.org/show_bug.cgi?id=79611 Reviewed by James Robinson. Source/WebCore: As of today, any FrameView attached to the Widget-tree or any RenderLayer whose corresponding RenderBox's style has a 'overflow' property set to 'auto' is cached in its containing scrollable areas set. We could be more restrictive about what we in fact want to cache as scrollable areas, by checking if the element as an overflow (i.e. more content than its viewport). * page/FrameView.cpp: (WebCore::FrameView::setFrameRect): Whenever the viewport changes, check if we have an scrollable/overflowed content, and update the cache accordingly. (WebCore::FrameView::setContentsSize): Whenever the contents size changes, check if we have a scrollable/overflowed content, and update the cache accordingly. (WebCore::FrameView::calculateScrollbarModesForLayout): Introduces a way to query for the scrollbars by only taking into account the "rules" set by the web author. For that, a new enum was added called SrollbarModesCalculationStrategy, which allows callers to discard for example client-side scrollbar policies in order to verify if a given frameview is scrollable or not. (WebCore::FrameView::updateScrollableAreaSet): Take into account various factors before considering a FrameView as scrollable. If in the end it is, it gets added to its parent FrameView scrollable areas map, otherwise removed. (WebCore): (WebCore::FrameView::addScrollableArea): Became unneeded, thus removed. (WebCore::FrameView::removeScrollableArea): Whenever a FrameView is removed from the Widget-tree, remove it from the cache. * page/FrameView.h: (FrameView): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::updateScrollbarsAfterLayout): Update scrollable area set after layout. (WebCore::RenderLayer::updateScrollbarsAfterStyleChange): Update scrollable area set after style changes. (WebCore::RenderLayer::styleChanged): Removed the scrollable areas logic detection from it. (WebCore::RenderLayer::updateScrollableAreaSet): Updates the containing FrameView scrollable areas cache only when needed (i.e. an overflow exists). (WebCore): * rendering/RenderLayer.h: (RenderLayer): * testing/Internals.cpp: (WebCore::Internals::numberOfScrollableAreas): (WebCore): * testing/Internals.h: (Internals): * testing/Internals.idl: Tests: fast/scrolling/scrollable-area-frame-inherited-visibility-hidden.html fast/scrolling/scrollable-area-frame-overflow-hidden.html fast/scrolling/scrollable-area-frame-overried-inherited-visibility-hidden.html fast/scrolling/scrollable-area-frame-scrolling-no-overried-inherited-visibility-hidden.html fast/scrolling/scrollable-area-frame-scrolling-no-visibility-hidden-child.html fast/scrolling/scrollable-area-frame-scrolling-no.html fast/scrolling/scrollable-area-frame-scrolling-yes-display-none.html fast/scrolling/scrollable-area-frame-scrolling-yes.html fast/scrolling/scrollable-area-frame-visibility-hidden-child.html fast/scrolling/scrollable-area-frame-zero-size-and-border.html fast/scrolling/scrollable-area-frame.html fast/scrolling/scrollable-area-overflow-auto-display-none-in-parent.html fast/scrolling/scrollable-area-overflow-auto-display-none.html fast/scrolling/scrollable-area-overflow-auto-visibility-hidden-in-parent.html fast/scrolling/scrollable-area-overflow-auto-visibility-hidden.html fast/scrolling/scrollable-area-overflow-auto-visibility-override.html fast/scrolling/scrollable-area-overflow-auto-visibility-visible.html fast/scrolling/scrollable-area-overflow-auto.html fast/scrolling/scrollable-area-overflow-not-set.html fast/scrolling/scrollable-area-overflow-visible.html 2012-04-13 Antti Koivisto Track rem unit usage in StyleSheetInternal https://bugs.webkit.org/show_bug.cgi?id=83923 Reviewed by Andreas Kling. Currently CSSParser sets usesRemUnits flag directly to Document. It should be set to the stylesheet instead so parser does not need to know about the document. This also avoids setting the flag unnecessarily when the stylesheet is not used. * css/CSSGrammar.y: * css/CSSStyleSheet.cpp: (WebCore::StyleSheetInternal::StyleSheetInternal): * css/CSSStyleSheet.h: (WebCore::StyleSheetInternal::parserSetUsesRemUnits): (WebCore::StyleSheetInternal::usesRemUnits): (StyleSheetInternal): * dom/Document.cpp: (WebCore): (WebCore::checkUsesRemUnits): (WebCore::Document::updateActiveStylesheets): * dom/Document.h: (WebCore::Document::usesRemUnits): 2012-04-11 James Robinson [chromium] Remove unused compositeToTexture / compositeOffscreen setting https://bugs.webkit.org/show_bug.cgi?id=83733 Reviewed by Adrienne Walker. Remove compositeOffscreen setting and implementation. This was an experiment that is no longer needed. * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::finishDrawingFrame): (WebCore::LayerRendererChromium::useRenderSurface): (WebCore::LayerRendererChromium::setScissorToRect): * platform/graphics/chromium/LayerRendererChromium.h: (LayerRendererChromium): * platform/graphics/chromium/cc/CCLayerTreeHost.h: (WebCore::CCSettings::CCSettings): (CCSettings): 2012-04-13 Alexey Proskuryakov REGRESSION (XHR Caching): Uncacheable responses sent by Rails through Apache are cached https://bugs.webkit.org/show_bug.cgi?id=83925 Reviewed by Antti Koivisto. Added subtests to http/tests/cache/subresource-expiration-2.html. * platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::parseCacheControlDirectives): Honor first max-age instead of the last. New behavior matches both Firefox and IE. 2012-04-13 James Robinson [chromium] Move WebVideoFrame into Platform and remove WebCore::VideoFrameChromium wrapper API https://bugs.webkit.org/show_bug.cgi?id=83851 Reviewed by Adam Barth. Remove VideoFrameChromium wrapper and converts WebCore code to using the Platform WebVideoFrame API directly. Some utility code that previously existed on VideoFrameChromium and only had one caller, such as doing width/height adjustements for YV12 frames, is moved into the calling code (CCVideoLayerImpl). Covered by existing media/ and compositing/ layout tests. * WebCore.gypi: * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::drawYUV): (WebCore::LayerRendererChromium::drawRGBA): (WebCore::LayerRendererChromium::copyFrameToTextures): * platform/graphics/chromium/LayerRendererChromium.h: * platform/graphics/chromium/VideoFrameProvider.h: (VideoFrameProvider): * platform/graphics/chromium/cc/CCVideoDrawQuad.cpp: (WebCore::CCVideoDrawQuad::create): (WebCore::CCVideoDrawQuad::CCVideoDrawQuad): * platform/graphics/chromium/cc/CCVideoDrawQuad.h: (WebKit): (CCVideoDrawQuad): (WebCore::CCVideoDrawQuad::frame): * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp: (WebCore): (WebCore::convertVFCFormatToGC3DFormat): (WebCore::CCVideoLayerImpl::willDraw): (WebCore::videoFrameDimension): (WebCore::hasPaddingBytes): (WebCore::CCVideoLayerImpl::computeVisibleSize): (WebCore::CCVideoLayerImpl::reserveTextures): * platform/graphics/chromium/cc/CCVideoLayerImpl.h: (WebKit): 2012-04-13 Rob Flack Chromium: Should enable -webkit-image-set https://bugs.webkit.org/show_bug.cgi?id=81859 Reviewed by Adam Barth. Test: fast/css/image-set-parsing.html * WebCore.gypi: 2012-04-12 Michael Nordman [chromium] Now that the chromium port is using a different dom_storage backend library in its main browser process, there are a handful of files that should no longer be included in the build, and a few files than should be deleted outright, and the webkit api should be modified to reflect the new (and smaller) contract between the embedder and webkit/webcore. https://bugs.webkit.org/show_bug.cgi?id=83807 Reviewed by Adam Barth. No new tests, existing tests apply. * WebCore.gyp/WebCore.gyp: Exclude several files from the WebCore/storage directory. * storage/StorageEventDispatcher.h: Delete a stale comment. 2012-04-13 Sheriff Bot Unreviewed, rolling out r114140. http://trac.webkit.org/changeset/114140 https://bugs.webkit.org/show_bug.cgi?id=83921 Fails fast/css/image-set-parsing.html test it attempts to introduce. (Requested by scheib on #webkit). * WebCore.gypi: 2012-04-13 Dan Bernstein Pixel access canvas APIs do not operate at backing store resolution https://bugs.webkit.org/show_bug.cgi?id=83836 Reviewed by Darin Adler. Test: fast/canvas/2d.imageDataHD.html Added getImageDataHD and putImageDataHD functions to CanvasRenderingContext2D, as proposed in . The functions are prefixed with “webkit” for now. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::getImageData): Added this cover function that calls through to getImageData with LogicalCoordinateSystem. (WebCore::CanvasRenderingContext2D::webkitGetImageDataHD): Added. Calls through to getImageData with BackingStoreCoordinateSystem. (WebCore::CanvasRenderingContext2D::getImageData): Added a CoordinateSystem parameter to this now-private function. It is passed through to ImageBuffer::getUnmultipliedImageData(). (WebCore::CanvasRenderingContext2D::putImageData): Added this cover function that calls through to putImageData with LogicalCoordinateSystem. (WebCore::CanvasRenderingContext2D::webkitPutImageDataHD): Added. Calls through to putImageData with BackingStoreCoordinateSystem. (WebCore::CanvasRenderingContext2D::putImageData): Added a CoordinateSystem parameter to this function. It is passed through to ImageBuffer::putByteArray, and used to compute the rect to invalidate after the drawing operation. * html/canvas/CanvasRenderingContext2D.h: * html/canvas/CanvasRenderingContext2D.idl: Added webkitPutImageDataHD() and webkitGetImageDataHD(). * platform/graphics/ImageBuffer.h: Added a CoordinateSystem enum with the values LogicalCoordinateSystem and BackingStoreCoordinateSystem. Added a CoordinateSystem parameter, which defaults to LogicalCoordinateSystem, to getUnmultipliedImageData, getPremultipliedImageData, and putByteArray. * platform/graphics/cairo/ImageBufferCairo.cpp: (WebCore::ImageBuffer::getUnmultipliedImageData): (WebCore::ImageBuffer::getPremultipliedImageData): (WebCore::ImageBuffer::putByteArray): (WebCore::ImageBuffer::toDataURL): * platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::getUnmultipliedImageData): Now uses the CoordinateSystem parameter to decide whether to ask ImageBufferDaya::getData() to apply the resolution scale or not. (WebCore::ImageBuffer::getPremultipliedImageData): Ditto. (WebCore::ImageBuffer::putByteArray): Now uses the CoordinateSystem parameter to decide whether to maintain the resolution scale while drawing or not. (WebCore::ImageBuffer::toDataURL): * platform/graphics/gtk/ImageBufferGtk.cpp: (WebCore::ImageBuffer::toDataURL): * platform/graphics/qt/ImageBufferQt.cpp: (WebCore::ImageBuffer::getUnmultipliedImageData): (WebCore::ImageBuffer::getPremultipliedImageData): (WebCore::ImageBuffer::putByteArray): (WebCore::ImageBuffer::toDataURL): * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageBuffer::getUnmultipliedImageData): (WebCore::ImageBuffer::getPremultipliedImageData): (WebCore::ImageBuffer::putByteArray): (WebCore::ImageBuffer::toDataURL): * platform/graphics/wince/ImageBufferWinCE.cpp: (WebCore::ImageBuffer::getUnmultipliedImageData): (WebCore::ImageBuffer::getPremultipliedImageData): (WebCore::ImageBuffer::putByteArray): (WebCore::ImageBuffer::toDataURL): * platform/graphics/wx/ImageBufferWx.cpp: (WebCore::ImageBuffer::getUnmultipliedImageData): (WebCore::ImageBuffer::getPremultipliedImageData): (WebCore::ImageBuffer::putByteArray): (WebCore::ImageBuffer::toDataURL): 2012-04-12 Shawn Singh [chromium] Support CCHeadsUpDisplay in threaded compositing mode https://bugs.webkit.org/show_bug.cgi?id=67499 Reviewed by James Robinson. No new tests because this code is debugging code itself. The last item that was needed to make the CCHeadsUpDisplay work in threaded compositing mode was to remove the font rendering code used on the impl-side thread. To solve this, this patch adds a CCFontAtlas that is initialized on the main thread (where the font rendering takes place). Then, when the HUD draws text on the impl thread, it uses the font atlas directly. * WebCore.gypi: * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::create): (WebCore::LayerRendererChromium::initialize): * platform/graphics/chromium/LayerRendererChromium.h: (WebCore): (LayerRendererChromium): * platform/graphics/chromium/cc/CCFontAtlas.cpp: Added. (WebCore): (WebCore::CCFontAtlas::CCFontAtlas): (WebCore::wrapPositionIfNeeded): (WebCore::CCFontAtlas::generateAtlasForFont): (WebCore::CCFontAtlas::initialize): (WebCore::CCFontAtlas::drawText): (WebCore::CCFontAtlas::drawOneLineOfTextInternal): (WebCore::CCFontAtlas::drawDebugAtlas): * platform/graphics/chromium/cc/CCFontAtlas.h: Added. (WebCore): (CCFontAtlas): (WebCore::CCFontAtlas::create): * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp: (WebCore::CCHeadsUpDisplay::CCHeadsUpDisplay): (WebCore): (WebCore::CCHeadsUpDisplay::showPlatformLayerTree): (WebCore::CCHeadsUpDisplay::drawHudContents): (WebCore::CCHeadsUpDisplay::drawFPSCounter): (WebCore::CCHeadsUpDisplay::drawFPSCounterText): (WebCore::CCHeadsUpDisplay::drawPlatformLayerTree): * platform/graphics/chromium/cc/CCHeadsUpDisplay.h: (WebCore::CCHeadsUpDisplay::create): (CCHeadsUpDisplay): * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: (WebCore::CCLayerTreeHost::initialize): * platform/graphics/chromium/cc/CCLayerTreeHost.h: (WebCore): (WebCore::CCLayerTreeHost::headsUpDisplayFontAtlas): (CCLayerTreeHost): * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer): * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: (WebCore): (CCLayerTreeHostImpl): * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp: (WebCore::CCSingleThreadProxy::initializeLayerRenderer): (WebCore::CCSingleThreadProxy::recreateContext): * platform/graphics/chromium/cc/CCThreadProxy.cpp: (WebCore::CCThreadProxy::initializeLayerRendererOnImplThread): (WebCore::CCThreadProxy::recreateContextOnImplThread): 2012-04-13 Rob Flack Chromium: Should enable -webkit-image-set https://bugs.webkit.org/show_bug.cgi?id=81859 Reviewed by Adam Barth. Test: fast/css/image-set-parsing.html * WebCore.gypi: 2012-04-13 Pavel Feldman Web Inspector: do not attempt to load content from resource until request finished loading. https://bugs.webkit.org/show_bug.cgi?id=83896 Reviewed by Yury Semikhatsky. When we stop in the inline script on reload, we should only show concatenated script content. When we resume, we should replace UI source code with the actual HTML content. We should not attempt to fetch resource content until request finished loading. I regressed it in the Request extraction and now am bringing it back. * inspector/front-end/RawSourceCode.js: (WebInspector.RawSourceCode): (WebInspector.RawSourceCode.prototype._finishedLoading): * inspector/front-end/ResourceScriptMapping.js: (WebInspector.ResourceScriptMapping.prototype.addScript): 2012-04-13 Pavel Feldman Web Inspector: follow up to r114116 - fixing QT test https://bugs.webkit.org/show_bug.cgi?id=83892 Reviewed by Yury Semikhatsky. Requesting content for the scripts exclusively via the page agent now. * inspector/front-end/Resource.js: (WebInspector.Resource.prototype.get content): (WebInspector.Resource.prototype.get contentEncoded): (WebInspector.Resource.prototype.requestContent): (WebInspector.ResourceRevision.prototype.requestContent): 2012-04-13 Yi Shen InsertHTML fails to insert h6 if the insertion point is before some text. https://bugs.webkit.org/show_bug.cgi?id=82689 Reviewed by Ryosuke Niwa. Added the missing h6 tag for the isHeaderElement. No new tests: updated existing test (editing/execCommand/4128080-1.html) * editing/ReplaceSelectionCommand.cpp: (WebCore::isHeaderElement): 2012-04-13 Yury Semikhatsky Web Inspector: exception in heap profiler when expanding a class in summary view https://bugs.webkit.org/show_bug.cgi?id=83883 Moved all DOM-specific inspector utilities into DOMExtension.js Merged BinarySearch.js and PartialQuickSort.js into utilities.js, HeapSnapshotWorker.js now imports utilities.js which contains all required routines. Reviewed by Pavel Feldman. * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/compile-front-end.py: * inspector/front-end/BinarySearch.js: Removed. * inspector/front-end/DOMExtension.js: Copied from Source/WebCore/inspector/front-end/utilities.js. (Node.prototype.rangeOfWord): (Node.prototype.traverseNextTextNode): (Node.prototype.rangeBoundaryForOffset): (Element.prototype.removeStyleClass): (Element.prototype.removeMatchingStyleClasses): (Element.prototype.addStyleClass): (Element.prototype.hasStyleClass): (Element.prototype.positionAt): (Element.prototype.pruneEmptyTextNodes): (Element.prototype.isScrolledToBottom): (Node.prototype.enclosingNodeOrSelfWithNodeNameInArray): (Node.prototype.enclosingNodeOrSelfWithNodeName): (Node.prototype.enclosingNodeOrSelfWithClass): (Node.prototype.enclosingNodeWithClass): (Element.prototype.query): (Element.prototype.removeChildren): (Element.prototype.isInsertionCaretInside): (Element.prototype.createChild): (Element.prototype.totalOffsetLeft): (Element.prototype.totalOffsetTop): (Element.prototype.totalOffset): (Element.prototype.scrollOffset): (AnchorBox): (Element.prototype.offsetRelativeToWindow): (Element.prototype.boxInWindow): (Element.prototype.setTextAndTitle): (Event.prototype.consume): (Text.prototype.select): (Element.prototype.selectionLeftOffset): (Node.prototype.isAncestor): (Node.prototype.isDescendant): (Node.prototype.isSelfOrAncestor): (Node.prototype.isSelfOrDescendant): (Node.prototype.traverseNextNode): (Node.prototype.traversePreviousNode): (HTMLTextAreaElement.prototype.moveCursorToEnd): (isEnterKey): (consumeEvent): (highlightSearchResult): (highlightSearchResults): (highlightRangesWithStyleClass): (applyDomChanges): (revertDomChanges): * inspector/front-end/HeapSnapshot.js: Fixed a couple of js compiler warnings by describing structure of heap snapshot header in the protocol. (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk): * inspector/front-end/HeapSnapshotWorker.js: * inspector/front-end/PartialQuickSort.js: Removed. * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: * inspector/front-end/utilities.js: (.): 2012-04-13 Sheriff Bot Unreviewed, rolling out r114103. http://trac.webkit.org/changeset/114103 https://bugs.webkit.org/show_bug.cgi?id=83884 New breakpoint UI looks bad / needs polish. (Requested by pfeldman_ on #webkit). * inspector/front-end/Images/breakpointConditionalCounterBorder.png: * inspector/front-end/Images/breakpointCounterBorder.png: * inspector/front-end/Images/programCounterBorder.png: * inspector/front-end/textViewer.css: (.webkit-execution-line .webkit-line-number-outer): (.webkit-breakpoint.webkit-execution-line .webkit-line-number-outer): (.webkit-breakpoint-conditional.webkit-execution-line .webkit-line-number-outer): 2012-04-13 Jason Liu [BlackBerry] Sign in cookie for ESPN.com does not retain login account (for fantasy sports). https://bugs.webkit.org/show_bug.cgi?id=83760 Reviewed by George Staikos. When we update cookies' database, protocol shouldn't be checked since it is not a cookie's key. ESPN.com's https cookies should replace old http cookies if they have the same keys(name, path, domain). We must restart the browser to test, so have to write a manual test case. Test: ManualTests/blackberry/http-cookie-database-set.php * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp: (WebCore::CookieDatabaseBackingStore::invokeOpen): 2012-04-12 Jocelyn Turcotte [Qt] Use QQuickFlickable::setPixelAligned instead of doing pixel-alignment when rendering. https://bugs.webkit.org/show_bug.cgi?id=83770 Reviewed by Kenneth Rohde Christiansen. Revert the previous way of dealing with things. The problem is that different layers would end up rounding in different directions, and would cause jittering between layers or with the QQuickWebPage's background. * platform/graphics/texmap/TextureMapperGL.cpp: (WebCore::TextureMapperGL::drawTexture): 2012-04-13 Pavel Feldman Web Inspector: introduce ParsedURL type, clean up url and displayName mess in Resource and NetworkRequest. https://bugs.webkit.org/show_bug.cgi?id=83871 Reviewed by Yury Semikhatsky. There is a number of random properties created on Resource and NetworkRequest that represent various url fragments. Display name is being based on them and sometimes requires fake Resource instance to be created. This change (officially) introduces WebInspector.ParsedURL as a type that encapsulates this complexity. This change also moves documentURL property into the Resource and NetworkRequest constructors and brushes up factory methods used to create the objects. * inspector/front-end/AuditRules.js: (WebInspector.AuditRules.GzipRule.prototype._shouldCompress): (WebInspector.AuditRules.CookieSizeRule.prototype.processCookies): * inspector/front-end/Database.js: (WebInspector.Database.prototype.get displayDomain): * inspector/front-end/JavaScriptContextManager.js: (WebInspector.FrameEvaluationContext.prototype.get displayName): * inspector/front-end/NetworkManager.js: (WebInspector.NetworkDispatcher.prototype.webSocketCreated): (WebInspector.NetworkDispatcher.prototype._createNetworkRequest): (get WebInspector): * inspector/front-end/NetworkPanel.js: (WebInspector.NetworkLogView.prototype._highlightNthMatchedRequest): (WebInspector.NetworkDataGridNode.prototype._refreshNameCell): * inspector/front-end/NetworkRequest.js: (WebInspector.NetworkRequest): (WebInspector.NetworkRequest.prototype.set url): (WebInspector.NetworkRequest.prototype.get documentURL): (WebInspector.NetworkRequest.prototype.get parsedURL): (WebInspector.NetworkRequest.prototype.get displayName): (WebInspector.NetworkRequest.prototype.get folder): * inspector/front-end/RequestHeadersView.js: (WebInspector.RequestHeadersView.prototype._refreshUrlFragment): * inspector/front-end/Resource.js: (WebInspector.Resource): (WebInspector.Resource.prototype.set url): (WebInspector.Resource.prototype.get parsedURL): (WebInspector.Resource.prototype.get frameId): (WebInspector.Resource.prototype.get loaderId): (WebInspector.Resource.prototype.get displayName): * inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel.prototype._onRequestUpdateDropped): (WebInspector.ResourceTreeModel.prototype._addFramesRecursively): (WebInspector.ResourceTreeModel.prototype._createResourceFromFramePayload): (WebInspector.ResourceTreeFrame.prototype._addRequest): * inspector/front-end/ResourceUtils.js: (WebInspector.ParsedURL): (WebInspector.ParsedURL.prototype.get displayName): (String.prototype.asParsedURL): (WebInspector.displayDomain): (WebInspector.resourceURLForRelatedNode.callback): (WebInspector.resourceURLForRelatedNode): * inspector/front-end/ResourcesPanel.js: (WebInspector.FrameTreeElement.prototype.frameNavigated): (WebInspector.ApplicationCacheManifestTreeElement): (WebInspector.ApplicationCacheFrameTreeElement.prototype._refreshTitles): * inspector/front-end/utilities.js: 2012-04-13 Pavel Feldman Web Inspector: extracting NetworkRequest from Resource (step 3) https://bugs.webkit.org/show_bug.cgi?id=83802 Reviewed by Yury Semikhatsky. This change extracts NetworkRequest from the Resource. It is now clear that these two should have super class that would be responsible for parsing URL and would define the requestContent signature. Corresponding patch will follow. * inspector/front-end/NetworkManager.js: * inspector/front-end/NetworkRequest.js: (WebInspector.NetworkRequest): (WebInspector.NetworkRequest.prototype.get requestId): (WebInspector.NetworkRequest.prototype.set requestId): (WebInspector.NetworkRequest.prototype.get url): (WebInspector.NetworkRequest.prototype.get frameId): (WebInspector.NetworkRequest.prototype.get loaderId): (WebInspector.NetworkRequest.prototype.get startTime): (WebInspector.NetworkRequest.prototype.set startTime): (WebInspector.NetworkRequest.prototype.get responseReceivedTime): (WebInspector.NetworkRequest.prototype.set responseReceivedTime): (WebInspector.NetworkRequest.prototype.get endTime): (WebInspector.NetworkRequest.prototype.set endTime): (WebInspector.NetworkRequest.prototype.get duration): (WebInspector.NetworkRequest.prototype.get latency): (WebInspector.NetworkRequest.prototype.get receiveDuration): (WebInspector.NetworkRequest.prototype.get resourceSize): (WebInspector.NetworkRequest.prototype.set resourceSize): (WebInspector.NetworkRequest.prototype.get transferSize): (WebInspector.NetworkRequest.prototype.increaseTransferSize): (WebInspector.NetworkRequest.prototype.get finished): (WebInspector.NetworkRequest.prototype.set finished): (WebInspector.NetworkRequest.prototype.get failed): (WebInspector.NetworkRequest.prototype.set failed): (WebInspector.NetworkRequest.prototype.get canceled): (WebInspector.NetworkRequest.prototype.set canceled): (WebInspector.NetworkRequest.prototype.get cached): (WebInspector.NetworkRequest.prototype.set cached): (WebInspector.NetworkRequest.prototype.get timing): (WebInspector.NetworkRequest.prototype.set timing): (WebInspector.NetworkRequest.prototype.get mimeType): (WebInspector.NetworkRequest.prototype.set mimeType): (WebInspector.NetworkRequest.prototype.get displayName): (WebInspector.NetworkRequest.prototype.get folder): (WebInspector.NetworkRequest.prototype.get displayDomain): (WebInspector.NetworkRequest.prototype.get type): (WebInspector.NetworkRequest.prototype.set type): (WebInspector.NetworkRequest.prototype.get redirectSource): (WebInspector.NetworkRequest.prototype.set redirectSource): (WebInspector.NetworkRequest.prototype.get requestHeaders): (WebInspector.NetworkRequest.prototype.set requestHeaders): (WebInspector.NetworkRequest.prototype.get requestHeadersText): (WebInspector.NetworkRequest.prototype.set requestHeadersText): (WebInspector.NetworkRequest.prototype.get requestHeadersSize): (WebInspector.NetworkRequest.prototype.requestHeaderValue): (WebInspector.NetworkRequest.prototype.get requestCookies): (WebInspector.NetworkRequest.prototype.get requestFormData): (WebInspector.NetworkRequest.prototype.set requestFormData): (WebInspector.NetworkRequest.prototype.get requestHttpVersion): (WebInspector.NetworkRequest.prototype.get responseHeaders): (WebInspector.NetworkRequest.prototype.set responseHeaders): (WebInspector.NetworkRequest.prototype.get responseHeadersText): (WebInspector.NetworkRequest.prototype.set responseHeadersText): (WebInspector.NetworkRequest.prototype.get responseHeadersSize): (WebInspector.NetworkRequest.prototype.responseHeaderValue): (WebInspector.NetworkRequest.prototype.get responseCookies): (WebInspector.NetworkRequest.prototype.get queryParameters): (WebInspector.NetworkRequest.prototype.get formParameters): (WebInspector.NetworkRequest.prototype.get responseHttpVersion): (WebInspector.NetworkRequest.prototype._parseParameters): (WebInspector.NetworkRequest.prototype._headerValue): (WebInspector.NetworkRequest.prototype.get content): (WebInspector.NetworkRequest.prototype.get contentEncoded): (WebInspector.NetworkRequest.prototype.requestContent): (WebInspector.NetworkRequest.prototype.isHttpFamily): (WebInspector.NetworkRequest.prototype.requestContentType): (WebInspector.NetworkRequest.prototype.isPingRequest): (WebInspector.NetworkRequest.prototype.hasErrorStatusCode): (WebInspector.NetworkRequest.prototype.populateImageSource): (WebInspector.NetworkRequest.prototype._contentURL): (WebInspector.NetworkRequest.prototype._innerRequestContent.onResourceContent): (WebInspector.NetworkRequest.prototype._innerRequestContent): (WebInspector.NetworkRequest.prototype.setResource): (WebInspector.NetworkRequest.prototype.resource): * inspector/front-end/RawSourceCode.js: (WebInspector.RawSourceCode): (WebInspector.RawSourceCode.prototype._resourceAdded): (WebInspector.RawSourceCode.prototype.forceUpdateSourceMapping): (WebInspector.RawSourceCode.prototype._createContentProvider): * inspector/front-end/Resource.js: (WebInspector.Resource): (WebInspector.Resource.displayName): (WebInspector.Resource.prototype.get request): (WebInspector.Resource.prototype.set url): (WebInspector.Resource.prototype.get type): (WebInspector.Resource.prototype.get mimeType): (WebInspector.Resource.prototype.set mimeType): (WebInspector.Resource.prototype.get content): (WebInspector.Resource.prototype.get contentEncoded): (WebInspector.Resource.prototype.requestContent): (WebInspector.Resource.prototype._innerRequestContent.callback): (WebInspector.Resource.prototype._innerRequestContent): (WebInspector.ResourceRevision.prototype.requestContent.callbackWrapper): (WebInspector.ResourceRevision.prototype.requestContent): * inspector/front-end/ResourceScriptMapping.js: (WebInspector.ResourceScriptMapping.prototype.addScript): 2012-04-13 Mike Reed use getClipDeviceBounds, rather than (deprecated) getTotalClip https://bugs.webkit.org/show_bug.cgi?id=83808 Reviewed by Stephen White. Equivalent functionality, existing tests apply. * platform/graphics/skia/OpaqueRegionSkia.cpp: (WebCore::OpaqueRegionSkia::didDraw): 2012-04-13 Thiago Marcos P. Santos [EFL] Add API for color chooser https://bugs.webkit.org/show_bug.cgi?id=83692 Added new API to enable browsers to display a custom color picker when an input field of type "color" is activated. Reviewed by Kenneth Rohde Christiansen. * PlatformEfl.cmake: * platform/efl/ColorChooserEfl.cpp: Added. (WebCore): (WebCore::ColorChooserEfl::ColorChooserEfl): (WebCore::ColorChooserEfl::~ColorChooserEfl): (WebCore::ColorChooserEfl::setSelectedColor): (WebCore::ColorChooserEfl::endChooser): * platform/efl/ColorChooserEfl.h: Added. (WebCore): (ColorChooserEfl): 2012-04-13 Zalan Bujtas Enabling/disabling delegates scrolling when page has no composited content asserts on WK1. https://bugs.webkit.org/show_bug.cgi?id=83860 Reviewed by Kenneth Rohde Christiansen. WK2 has compositing mode on all the time, while Wk1 turns it on only when the page has composited content. This patch ensures that, when delegates scrolling behavior is changed, backing stores are cleared only when there's an actual composition, similarly to what CachedFrame does. Test: fast/viewport/scroll-delegates-switch-on-page-with-no-composition-mode-asserts.html * page/FrameView.cpp: (WebCore::FrameView::delegatesScrollingDidChange): 2012-04-13 Vivek Galatage Web Inspector: Line number is not displayed while debugging javascript https://bugs.webkit.org/show_bug.cgi?id=83786 Reviewed by Pavel Feldman. Changed the textViewer.css to start displaying the line number with appropriate color property. Added outline property for enhanced view No additional test cases required for the above fix. * inspector/front-end/Images/breakpointConditionalCounterBorder.png: * inspector/front-end/Images/breakpointCounterBorder.png: * inspector/front-end/Images/programCounterBorder.png: * inspector/front-end/textViewer.css: (.webkit-execution-line .webkit-line-number-outer): (.webkit-breakpoint.webkit-execution-line .webkit-line-number-outer): (.webkit-breakpoint-conditional.webkit-execution-line .webkit-line-number-outer): 2012-04-13 Kent Tamura Add a runtime flag for https://bugs.webkit.org/show_bug.cgi?id=83853 Reviewed by Adam Barth. * bindings/generic/RuntimeEnabledFeatures.cpp: * bindings/generic/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::inputTypeDateEnabled): Added. (WebCore::RuntimeEnabledFeatures::setInputTypeDateEnabled): Added. * html/InputType.cpp: (WebCore::createInputTypeFactoryMap): Don't register type=date if !RuntimeEnabledFeatures::inputTypeDateEnabled() 2012-04-13 Adam Barth JSDocument::setLocation does too much bare-handed lifting https://bugs.webkit.org/show_bug.cgi?id=83850 Reviewed by Sam Weinig. As part of auditing all the ways of kicking off a navigation, I happened to read JSDocument::setLocation, which uses very old patterns. This patch updates it to do things the "modern" way. There shouldn't be any behavior change. * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::setLocation): 2012-04-13 Shinya Kawanaka Background width (or height) is wrong if width (or height) * zoom < 1. https://bugs.webkit.org/show_bug.cgi?id=83350 Reviewed by Nikolas Zimmermann. calculateImageIntrinsicDimension will return wrong size if the calculated size is 0. 0 is used for expressing unspecfied, so the method returns the box width(height) instead. Since CachedImage has already similar code, we moved it to IntSize and shared it. Tests: fast/css/zoom-background-repeat-x-expected.html fast/css/zoom-background-repeat-x.html fast/css/zoom-background-repeat-y-expected.html fast/css/zoom-background-repeat-y.html * loader/cache/CachedImage.cpp: (WebCore::CachedImage::imageSizeForRenderer): * platform/graphics/IntSize.h: (IntSize): (WebCore::IntSize::scale): (WebCore::IntSize::clampToMinimumSize): * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions): 2012-04-13 Adam Barth Prepare submitForm for seamless navigation https://bugs.webkit.org/show_bug.cgi?id=83838 Reviewed by Ryosuke Niwa. Previously, FrameLoader::submitForm called FrameTree::find and Document::canNavigate separately. This patch refactors this function to call findFrameForNavigation, which does both checks. This doesn't change any behavior today, but it prepares us to implement seamless navigation. Once the seamless branch lands, this change will be tested by seamless-form-* in https://github.com/eseidel/webkit/tree/seamless/LayoutTests/fast/frames/seamless For context, see: https://github.com/eseidel/webkit/commit/3f27340577ac91b2cc0a834dd2c6fdfcac296c32 * loader/FrameLoader.cpp: (WebCore::FrameLoader::submitForm): 2012-04-13 Kent Tamura Should clear an invalid string in a date field on blur https://bugs.webkit.org/show_bug.cgi?id=83863 Reviewed by Kentaro Hara. Test: fast/forms/date/input-date-commit-valid-only.html * html/DateInputType.cpp: (WebCore::DateInputType::handleBlurEvent): Reset the visible value. The code is same as NumberInputType::handleBlurEvent(). 2012-04-12 Kent Tamura Calendar Picker: remove unnecessary code from calendarPicker.{css,js} https://bugs.webkit.org/show_bug.cgi?id=83685 Reviewed by Kentaro Hara. Remove the followings from input files: - multi line comments /*...*/ (.js and .css) - single line comment //... (.js) - repeating whitespace (.js and .css) - leading and trailing whitespace (.js and .css) - empty lines (.js and .css) This doesn't work for arbitrary JavaScript or CSS inputs, but works well for expected input files like css/make-css-file-arrays.pl * make-file-arrays.py: (strip_whitespace_and_comments): (main): 2012-04-12 Sailesh Agrawal Chromium: Fix scrollbar tickmark drawing on Mountain Lion https://bugs.webkit.org/show_bug.cgi?id=83844 Reviewed by James Robinson. On Mountain Lion overlay scrollbars have a new expanded mode. In expanded mode the scrolllbar is slightly wider which causes the tickmarks to look incorrect. Fix was to explicitly enter expanded mode to get the correct look. Screenshots: broken: http://i.imgur.com/PDKYH.png fixed: http://i.imgur.com/utp0Y.png * platform/chromium/ScrollbarThemeChromiumMac.mm: (WebCore::ScrollbarThemeChromiumMac::paint): Called setExpanded if API is available. * platform/mac/NSScrollerImpDetails.h: Exposed the isExpanded: API. 2012-04-12 Kent Tamura LocalizedDateICU should ignore timezones https://bugs.webkit.org/show_bug.cgi?id=83859 Reviewed by Hajime Morita. udat_parse() and udat_format() shift the input date by the offset of the default timezone. We don't need this behavior for type=date. So we specify "GMT" to udat_open(). No new tests. This behavior depends on the timezone setting of the local machine. * platform/text/LocalizedDateICU.cpp: (WebCore::createShortDateFormatter): Added. Common factory functio for UDateFormat. Use "GMT" instead of the default timezone. (WebCore::parseLocalizedDate): Use createShortDateFormatter(). (WebCore::formatLocalizedDate): ditto. 2012-04-12 Adam Barth Prepare window.location for seamless navigation https://bugs.webkit.org/show_bug.cgi?id=83843 Reviewed by Eric Seidel. This patch refactors window.location to flow through FrameLoader::findFrameForNavigation, which is where we're going to implement the seamless navigation redirect. This patch shouldn't cause any observable changes in behavior today, but it will make all the seamless-window-location* tests in https://github.com/eseidel/webkit/tree/seamless/LayoutTests/fast/frames/seamless pass once we merge the seamlesss branch. See https://github.com/eseidel/webkit/commit/a6e708fa6c643b156397e9a287b40a0868c7959c for context. * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::setLocation): * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::V8DOMWindow::locationAccessorSetter): * page/Location.cpp: (WebCore::Location::setHref): (WebCore::Location::setProtocol): (WebCore::Location::setHost): (WebCore::Location::setHostname): (WebCore::Location::setPort): (WebCore::Location::setPathname): (WebCore::Location::setSearch): (WebCore::Location::setHash): (WebCore::Location::assign): (WebCore::Location::replace): (WebCore::Location::setLocation): (WebCore): * page/Location.h: (Location): 2012-04-12 Dana Jansens [chromium] Background filters for composited layers https://bugs.webkit.org/show_bug.cgi?id=80046 Reviewed by Adrienne Walker. Adds background filters to LayerChromium/CCLayerImpl. These filters are applied to any pixels in the contents behind the layer and seen through it. This is done by adding a backgroundTexture() to the render surface, which holds the read-back contents of the target framebuffer, background filter applied, in the surface's own coordinate space. Then this is drawn back into the frame buffer before the contents of the surface itself is drawn. Tests: platform/chromium/compositing/filters/background-filter-blur-off-axis.html platform/chromium/compositing/filters/background-filter-blur-outsets.html platform/chromium/compositing/filters/background-filter-blur.html * platform/graphics/chromium/LayerChromium.cpp: (WebCore::LayerChromium::setBackgroundFilters): (WebCore): (WebCore::LayerChromium::pushPropertiesTo): * platform/graphics/chromium/LayerChromium.h: (LayerChromium): (WebCore::LayerChromium::backgroundFilters): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::drawBackgroundFilters): (WebCore): (WebCore::LayerRendererChromium::drawRenderSurfaceQuad): (WebCore::LayerRendererChromium::getFramebufferTexture): (WebCore::LayerRendererChromium::isCurrentRenderSurface): (WebCore::LayerRendererChromium::useRenderSurface): (WebCore::LayerRendererChromium::useManagedTexture): (WebCore::LayerRendererChromium::bindFramebufferToTexture): (WebCore::LayerRendererChromium::setScissorToRect): * platform/graphics/chromium/LayerRendererChromium.h: (LayerRendererChromium): * platform/graphics/chromium/RenderSurfaceChromium.h: (WebCore::RenderSurfaceChromium::setBackgroundFilters): (WebCore::RenderSurfaceChromium::backgroundFilters): (RenderSurfaceChromium): * platform/graphics/chromium/cc/CCLayerImpl.cpp: (WebCore::CCLayerImpl::setBackgroundFilters): (WebCore): * platform/graphics/chromium/cc/CCLayerImpl.h: (CCLayerImpl): (WebCore::CCLayerImpl::backgroundFilters): * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp: (WebCore::subtreeShouldRenderToSeparateSurface): (WebCore::calculateDrawTransformsAndVisibilityInternal): * platform/graphics/chromium/cc/CCRenderSurface.cpp: (WebCore::CCRenderSurface::drawableContentRect): (WebCore::CCRenderSurface::prepareBackgroundTexture): (WebCore): (WebCore::CCRenderSurface::releaseBackgroundTexture): (WebCore::CCRenderSurface::computeDeviceTransform): (WebCore::CCRenderSurface::computeDeviceBoundingBox): (WebCore::CCRenderSurface::computeReadbackDeviceBoundingBox): (WebCore::CCRenderSurface::readbackDeviceContentRect): (WebCore::copyTextureToFramebuffer): (WebCore::CCRenderSurface::copyDeviceToBackgroundTexture): (WebCore::getSkBitmapTextureId): (WebCore::CCRenderSurface::drawContents): (WebCore::CCRenderSurface::drawReplica): (WebCore::CCRenderSurface::drawLayer): (WebCore::CCRenderSurface::drawSurface): (WebCore::CCRenderSurface::applyFilters): * platform/graphics/chromium/cc/CCRenderSurface.h: (CCRenderSurface): (WebCore::CCRenderSurface::setBackgroundFilters): (WebCore::CCRenderSurface::backgroundFilters): (WebCore::CCRenderSurface::backgroundTexture): * testing/Internals.cpp: (WebCore): (WebCore::Internals::setBackgroundBlurOnNode): * testing/Internals.h: (Internals): * testing/Internals.idl: 2012-04-12 Adam Barth Remove V8DOMWindowShell::setLocation https://bugs.webkit.org/show_bug.cgi?id=83833 Reviewed by Eric Seidel. V8DOMWindowShell::setLocation is only used by document.location. It's more direct for document.location to call Location::setHref directly. This integrates correctly with the navigation rules for