2012-02-23 Adam Barth Move MediaStream related declarations from DOMWindow to DOMWindowMediaStream https://bugs.webkit.org/show_bug.cgi?id=79343 Reviewed by Eric Seidel. These declarations belong in the MEDIA_STREAM module. * GNUmakefile.list.am: * WebCore.gypi: * mediastream/DOMWindowMediaStream.idl: Added. * page/DOMWindow.idl: 2012-02-22 Igor Oliveira Every call to RenderObject::setAnimatableStyle() iterates through all m_compositeAnimations: potentially O(N^2) https://bugs.webkit.org/show_bug.cgi?id=38025 This patchs implements updateAnimationTimerForRenderer, it just checks the timeToNextService for the current RenderObject reducing the amount of iterations. Reviewed by Simon Fraser. * page/animation/AnimationController.cpp: (WebCore): (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer): (WebCore::AnimationController::updateAnimations): * page/animation/AnimationControllerPrivate.h: (AnimationControllerPrivate): 2012-02-22 Hajime Morrita NOTIFICATIONS should be implemented as PageSupplement https://bugs.webkit.org/show_bug.cgi?id=79052 Reviewed by Adam Barth. Turned NotificationController to a PageSupplement. No new tests. No behavior change. * notifications/NotificationController.cpp: (WebCore::NotificationController::clientFrom): (WebCore): (WebCore::NotificationController::supplementName): (WebCore::provideNotification): * notifications/NotificationController.h: (NotificationController): (WebCore::NotificationController::from): * notifications/NotificationPresenter.h: (WebCore): * page/DOMWindow.cpp: (WebCore::DOMWindow::webkitNotifications): * page/Page.cpp: (WebCore::Page::Page): (WebCore::Page::PageClients::PageClients): * page/Page.h: (WebCore): (PageClients): (Page): 2012-02-22 Dmitry Lomov [Chromium][V8] Support Uint8ClampedArray in postMessage https://bugs.webkit.org/show_bug.cgi?id=79291. Reviewed by Kenneth Russell. Covered by existing tests. * bindings/v8/SerializedScriptValue.cpp: 2012-02-22 Kentaro Hara Enable Geolocation bindings for GObject https://bugs.webkit.org/show_bug.cgi?id=79293 Reviewed by Adam Barth. This patch adds "WebCore::" to supplemental method calls. This will solve the GTK build failure we have observed in the Geolocation API, and thus this patch enables the Geolocation API. * Modules/geolocation/NavigatorGeolocation.idl: * bindings/scripts/CodeGeneratorGObject.pm: (GenerateProperty): (GenerateFunction): 2012-02-22 MORITA Hajime [Refactoring] Align supplementName() values. https://bugs.webkit.org/show_bug.cgi?id=79311 Reviewed by Adam Barth. No new tests. No behavioral change. * dom/DeviceOrientationController.cpp: (WebCore::DeviceOrientationController::supplementName): * mediastream/UserMediaController.cpp: (WebCore::UserMediaController::supplementName): 2012-02-22 Yuta Kitamura Unreviewed, rolling out r108602. http://trac.webkit.org/changeset/108602 https://bugs.webkit.org/show_bug.cgi?id=78878 Caused a couple of layout test failures on Chromium bots. * dom/Element.cpp: (WebCore::Element::childShouldCreateRenderer): * dom/Element.h: (Element): * dom/Node.h: (WebCore::Node::childShouldCreateRenderer): * dom/NodeRenderingContext.cpp: (WebCore::NodeRenderingContext::shouldCreateRenderer): * dom/NodeRenderingContext.h: (NodeRenderingContext): * html/HTMLDetailsElement.cpp: (WebCore::HTMLDetailsElement::childShouldCreateRenderer): * html/HTMLDetailsElement.h: (HTMLDetailsElement): * html/HTMLMediaElement.cpp: (WebCore): * html/HTMLMediaElement.h: (HTMLMediaElement): * html/HTMLMeterElement.cpp: * html/HTMLMeterElement.h: (HTMLMeterElement): * html/HTMLProgressElement.cpp: * html/HTMLProgressElement.h: (HTMLProgressElement): * html/HTMLSelectElement.cpp: * html/HTMLSelectElement.h: (HTMLSelectElement): * html/HTMLSummaryElement.cpp: * html/HTMLSummaryElement.h: (HTMLSummaryElement): * html/HTMLTextFormControlElement.cpp: * html/HTMLTextFormControlElement.h: (HTMLTextFormControlElement): * rendering/RenderButton.cpp: (WebCore::RenderButton::canHaveChildren): (WebCore): * rendering/RenderButton.h: (RenderButton): * rendering/RenderListBox.h: (WebCore::RenderListBox::canHaveChildren): (RenderListBox): * rendering/RenderMedia.h: * rendering/RenderMenuList.h: (WebCore::RenderMenuList::canHaveChildren): * rendering/RenderMeter.h: (WebCore::RenderMeter::canHaveChildren): * rendering/RenderProgress.h: (WebCore::RenderProgress::canHaveChildren): * rendering/RenderTextControl.h: (WebCore::RenderTextControl::canHaveChildren): * rendering/svg/RenderSVGRoot.h: (WebCore::RenderSVGRoot::canHaveChildren): * svg/SVGAElement.cpp: (WebCore::SVGAElement::childShouldCreateRenderer): * svg/SVGAElement.h: (SVGAElement): * svg/SVGAltGlyphElement.cpp: (WebCore::SVGAltGlyphElement::childShouldCreateRenderer): * svg/SVGAltGlyphElement.h: (SVGAltGlyphElement): * svg/SVGDocument.cpp: (WebCore::SVGDocument::childShouldCreateRenderer): * svg/SVGDocument.h: (SVGDocument): * svg/SVGElement.cpp: (WebCore::SVGElement::childShouldCreateRenderer): * svg/SVGElement.h: (SVGElement): * svg/SVGForeignObjectElement.cpp: (WebCore::SVGForeignObjectElement::childShouldCreateRenderer): * svg/SVGForeignObjectElement.h: (SVGForeignObjectElement): * svg/SVGSwitchElement.cpp: (WebCore::SVGSwitchElement::childShouldCreateRenderer): * svg/SVGSwitchElement.h: (SVGSwitchElement): * svg/SVGTRefElement.cpp: (WebCore::SVGTRefElement::childShouldCreateRenderer): * svg/SVGTRefElement.h: (SVGTRefElement): * svg/SVGTSpanElement.cpp: (WebCore::SVGTSpanElement::childShouldCreateRenderer): * svg/SVGTSpanElement.h: (SVGTSpanElement): * svg/SVGTextElement.cpp: (WebCore::SVGTextElement::childShouldCreateRenderer): * svg/SVGTextElement.h: (SVGTextElement): * svg/SVGTextPathElement.cpp: (WebCore::SVGTextPathElement::childShouldCreateRenderer): * svg/SVGTextPathElement.h: 2012-02-22 Abhishek Arya Crash in RenderBlock::addChildIgnoringAnonymousColumnBlocks. https://bugs.webkit.org/show_bug.cgi?id=79043 Reviewed by Julien Chaffraix. Tests: fast/runin/runin-div-before-child.html fast/runin/runin-table-before-child.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): handle the case of run-in elements and strengthen code to handle cases where beforeChild is incorrectly set. * rendering/RenderObject.h: remove anonymousContainer function since the new logic in RenderBlock does not need it. 2012-02-22 Hayato Ito Make ShadowRootList manage a node distribution. https://bugs.webkit.org/show_bug.cgi?id=79008 Reviewed by Dimitri Glazkov. The result of node distributions is currently stored in ShadowRoot. To support multiple ShadowRoots, such node distribution information should be managed in one place per shadow host. Now ShadowRootList takes this responsibility on behalf of owing multiple ShadowRoots. Clients should ask ShadowRootList for such information, not for each ShadowRoot. No tests. No change in behavior. * dom/NodeRenderingContext.cpp: (WebCore::NodeRenderingContext::NodeRenderingContext): * dom/ShadowRoot.cpp: (WebCore::ShadowRoot::create): (WebCore::ShadowRoot::attach): * dom/ShadowRoot.h: (ShadowRoot): * dom/ShadowRootList.cpp: (WebCore::ShadowRootList::insertionPointFor): (WebCore): (WebCore::ShadowRootList::isSelectorActive): (WebCore::ShadowRootList::ensureSelector): * dom/ShadowRootList.h: (WebCore): (ShadowRootList): (WebCore::ShadowRootList::hasShadowRoot): (WebCore::ShadowRootList::youngestShadowRoot): (WebCore::ShadowRootList::oldestShadowRoot): (WebCore::ShadowRootList::selector): (WebCore::ShadowRootList::host): * html/shadow/HTMLContentElement.cpp: (WebCore::HTMLContentElement::attach): (WebCore::HTMLContentElement::detach): * html/shadow/HTMLContentSelector.cpp: (WebCore::HTMLContentSelector::willSelectOver): * html/shadow/HTMLContentSelector.h: (HTMLContentSelector): 2012-02-22 Wei James Add multi channels support in AudioBus and AudioBufferSourceNode https://bugs.webkit.org/show_bug.cgi?id=79017 Reviewed by Chris Rogers. Tests: webaudio/up-mixing-mono-51.html webaudio/up-mixing-mono-stereo.html webaudio/up-mixing-stereo-51.html * platform/audio/AudioBus.cpp: (WebCore::AudioBus::copyFrom): (WebCore::AudioBus::sumFrom): (WebCore::AudioBus::processWithGainFromMonoStereo): (WebCore::AudioBus::processWithGainFrom): 2012-02-22 Kentaro Hara [Supplemental] should support constants https://bugs.webkit.org/show_bug.cgi?id=79303 Reviewed by Adam Barth. Given that we have interface [Supplemental=Y] X { constant int A = 123; } then the code generator should generate X::A to refer to the constant. However, the current code generator generates Y::A instead. This patch fixes it. Test: bindings/scripts/test/TestSupplemental.idl * bindings/scripts/CodeGenerator.pm: Modified as described above. (GenerateCompileTimeCheckForEnumsIfNeeded): * bindings/scripts/test/JS/JSTestInterface.cpp: Updated run-bindings-tests results. (WebCore): * bindings/scripts/test/V8/V8TestInterface.cpp: Ditto. (WebCore): * page/DOMWindow.h: Moved DOMWindow::FileSystemType to DOMWindowFileSystem::FileSystemType. (DOMWindow): * fileapi/DOMWindowFileSystem.h: Ditto. (DOMWindowFileSystem): * fileapi/DOMWindowFileSystem.cpp: Ditto. (WebCore): 2012-02-22 MORITA Hajime Adding a ShadowRoot to image-backed element causes a crash https://bugs.webkit.org/show_bug.cgi?id=78878 Reviewed by Dimitri Glazkov. The crash happened because NodeRenderingContext tried to append a child to a renderer regardless one isn't capable of holding any children if it appears in the shadow attaching phase. RenderImage is one of such renderer classes which aren't capable. NodeRenderingContext decide whether the contextual node as a child can create its renderer based on RenderObject::canHaveChildren() and Node::childShouldCreateRenderer(). But the responsibility between these two methods are getting confused. which results this unfortuante crash path. This change re-aligns the responsibility: - Now canHaveChildren() purely declares the ability of the renderer. If the renderer is capable of having children, it return true regardless of HTML semantics. - On the other hand, childShouldCreateRenderer() cares about the semantics. If the element doesn't allow children to be rendered, this returns false. - Note that these decision on elements are contextual. Each element needs to know which role it is playing in the tree composition algorithm of Shadow DOM. That's why the method parameter is changed from Node* to NodeRenderingContext. With this change, some decision points are moved from a renderer to an element. Following renderers no longer stop reject having children: - RenderButton, RenderListBox, RenderMenuList, RenderMeter, RenderProgress, RenderTextControl. Corresponding element for such a render (HTMLProgressElement of RenderProgress for exaple) now cares about that. Tests: fast/dom/shadow/shadow-on-image-expected.html fast/dom/shadow/shadow-on-image.html * dom/Element.cpp: (WebCore::Element::childShouldCreateRenderer): * dom/Element.h: (Element): * dom/Node.h: * dom/NodeRenderingContext.cpp: (WebCore::NodeRenderingContext::shouldCreateRenderer): * dom/NodeRenderingContext.h: (NodeRenderingContext): (WebCore::NodeRenderingContext::isOnEncapsulationBoundary): (WebCore): * html/HTMLDetailsElement.cpp: (WebCore::HTMLDetailsElement::childShouldCreateRenderer): * html/HTMLDetailsElement.h: (HTMLDetailsElement): * html/HTMLMeterElement.cpp: (WebCore::HTMLMeterElement::childShouldCreateRenderer): (WebCore): * html/HTMLMeterElement.h: (HTMLMeterElement): * html/HTMLProgressElement.cpp: (WebCore::HTMLProgressElement::childShouldCreateRenderer): * html/HTMLMediaElement.h: * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::childShouldCreateRenderer): (WebCore): * html/HTMLProgressElement.h: (HTMLProgressElement): * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::childShouldCreateRenderer): (WebCore): * html/HTMLSelectElement.h: (HTMLSelectElement): * html/HTMLSummaryElement.cpp: * html/HTMLSummaryElement.h: (HTMLSummaryElement): * html/HTMLTextFormControlElement.cpp: * html/HTMLTextFormControlElement.h: (HTMLTextFormControlElement): * rendering/RenderButton.cpp: * rendering/RenderButton.h: (RenderButton): * rendering/RenderListBox.h: (RenderListBox): * rendering/RenderMedia.h: (WebCore::RenderMedia::canHaveChildren): * rendering/RenderMenuList.h: * rendering/RenderMeter.h: * rendering/RenderProgress.h: * rendering/RenderTextControl.h: * rendering/svg/RenderSVGRoot.h: * svg/SVGAElement.cpp: (WebCore::SVGAElement::childShouldCreateRenderer): * svg/SVGAElement.h: (SVGAElement): * svg/SVGAltGlyphElement.cpp: (WebCore::SVGAltGlyphElement::childShouldCreateRenderer): * svg/SVGAltGlyphElement.h: (SVGAltGlyphElement): * svg/SVGDocument.cpp: (WebCore::SVGDocument::childShouldCreateRenderer): * svg/SVGDocument.h: (SVGDocument): * svg/SVGElement.cpp: (WebCore::SVGElement::childShouldCreateRenderer): * svg/SVGElement.h: (SVGElement): * svg/SVGForeignObjectElement.cpp: (WebCore::SVGForeignObjectElement::childShouldCreateRenderer): * svg/SVGForeignObjectElement.h: (SVGForeignObjectElement): * svg/SVGSwitchElement.cpp: (WebCore::SVGSwitchElement::childShouldCreateRenderer): * svg/SVGSwitchElement.h: (SVGSwitchElement): * svg/SVGTRefElement.cpp: (WebCore::SVGTRefElement::childShouldCreateRenderer): * svg/SVGTRefElement.h: (SVGTRefElement): * svg/SVGTSpanElement.cpp: (WebCore::SVGTSpanElement::childShouldCreateRenderer): * svg/SVGTSpanElement.h: (SVGTSpanElement): * svg/SVGTextElement.cpp: (WebCore::SVGTextElement::childShouldCreateRenderer): * svg/SVGTextElement.h: (SVGTextElement): * svg/SVGTextPathElement.cpp: (WebCore::SVGTextPathElement::childShouldCreateRenderer): * svg/SVGTextPathElement.h: 2012-02-22 Yong Li [BlackBerry] NetworkJob can access deleted objects. https://bugs.webkit.org/show_bug.cgi?id=79246 Reviewed by Antonio Gomes. When a NetworkJob is created by unload handler, we still need to send the request to the server, but we shouldn't save and keep using the Frame pointer because the frame is being detached. The NetworkJob will be cancelled by PingLoader as soon as it gets first response from host. Also see https://bugs.webkit.org/show_bug.cgi?id=30457. No new tests because existing test case is good enough like LayoutTests/http/tests/navigation/image-load-in-unload-handler.html. * platform/network/blackberry/NetworkJob.cpp: (WebCore::NetworkJob::NetworkJob): (WebCore::NetworkJob::initialize): 2012-02-22 Kenichi Ishibashi [WebSocket] Remove zlib.h from WebSocketDeflater.h https://bugs.webkit.org/show_bug.cgi?id=79298 Use forward declaration and OwnPtr for z_stream to move zlib.h from .h file to .cpp file. Reviewed by Kent Tamura. No new tests. No behavior change. * websockets/WebSocketDeflater.cpp: (WebCore::WebSocketDeflater::WebSocketDeflater): (WebCore::WebSocketDeflater::initialize): (WebCore::WebSocketDeflater::~WebSocketDeflater): (WebCore::setStreamParameter): (WebCore::WebSocketDeflater::addBytes): (WebCore::WebSocketDeflater::finish): (WebCore::WebSocketDeflater::reset): (WebCore::WebSocketInflater::WebSocketInflater): (WebCore::WebSocketInflater::initialize): (WebCore::WebSocketInflater::~WebSocketInflater): (WebCore::WebSocketInflater::addBytes): (WebCore::WebSocketInflater::finish): * websockets/WebSocketDeflater.h: (WebSocketDeflater): Use OwnPtr for m_stream. (WebSocketInflater): Ditto. 2012-02-22 James Robinson Remove GraphicsContext3D::paintsIntoCanvasBuffer and unify WebGL and canvas 2d logic https://bugs.webkit.org/show_bug.cgi?id=79317 Reviewed by Kenneth Russell. HTMLCanvasElement::paint needs to know whether to attempt to paint the canvas buffer for its context. In the case of an accelerated canvas or WebGL context, unless we are printing it is typically the composited layer's responsibility to present the contents and the element itself is only responsible for backgrounds, borders and the like. This removes a rather indirect path that WebGL content used to take to accomplish this and unifies the logic with CanvasRenderingContext2D's, which has the exact same needs. Covered by existing canvas layout tests. * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::paintsIntoCanvasBuffer): (WebCore): (WebCore::HTMLCanvasElement::paint): * html/HTMLCanvasElement.h: (HTMLCanvasElement): * html/canvas/CanvasRenderingContext.h: * html/canvas/CanvasRenderingContext2D.cpp: * html/canvas/CanvasRenderingContext2D.h: * html/canvas/WebGLRenderingContext.cpp: (WebCore): * html/canvas/WebGLRenderingContext.h: * platform/graphics/GraphicsContext3D.h: 2012-02-22 Pablo Flouret PopStateEvent.state should use the same object as history.state https://bugs.webkit.org/show_bug.cgi?id=77493 Reviewed by Kentaro Hara. Tests: fast/loader/stateobjects/state-attribute-history-getter.html fast/loader/stateobjects/state-attribute-popstate-event.html * bindings/js/JSPopStateEventCustom.cpp: (WebCore): (WebCore::cacheState): (WebCore::JSPopStateEvent::state): * bindings/v8/V8HiddenPropertyName.h: (WebCore): * bindings/v8/custom/V8HistoryCustom.cpp: (WebCore::V8History::stateAccessorGetter): (WebCore::V8History::pushStateCallback): (WebCore::V8History::replaceStateCallback): * bindings/v8/custom/V8PopStateEventCustom.cpp: (WebCore): (WebCore::cacheState): (WebCore::V8PopStateEvent::stateAccessorGetter): * dom/Document.cpp: (WebCore::Document::enqueuePopstateEvent): * dom/PopStateEvent.cpp: (WebCore::PopStateEvent::PopStateEvent): (WebCore::PopStateEvent::create): * dom/PopStateEvent.h: (WebCore): (PopStateEvent): (WebCore::PopStateEvent::history): * dom/PopStateEvent.idl: * page/History.cpp: (WebCore::History::stateChanged): (WebCore): (WebCore::History::isSameAsCurrentState): * page/History.h: (History): 2012-02-22 Adam Klein Remove obsolete FIXMEs from ContainerNode https://bugs.webkit.org/show_bug.cgi?id=79295 Reviewed by Ryosuke Niwa. Each of these three identical FIXMEs has since been fixed by adding "RefPtr protect(this)" at the top of each method. * dom/ContainerNode.cpp: (WebCore::ContainerNode::insertBefore): (WebCore::ContainerNode::replaceChild): (WebCore::ContainerNode::removeChild): 2012-02-22 Dmitry Lomov [JSC] Implement ArrayBuffer and typed array cloning in JSC https://bugs.webkit.org/show_bug.cgi?id=79294 Reviewed by Oliver Hunt. Covered by existing tests. * bindings/js/SerializedScriptValue.cpp: (WebCore::typedArrayElementSize): (WebCore): (WebCore::CloneSerializer::dumpArrayBufferView): (CloneSerializer): (WebCore::CloneSerializer::dumpIfTerminal): (WebCore::CloneSerializer::write): (WebCore::CloneDeserializer::readArrayBufferViewSubtag): (CloneDeserializer): (WebCore::CloneDeserializer::readArrayBuffer): (WebCore::CloneDeserializer::readArrayBufferView): (WebCore::CloneDeserializer::getJSValue): (WebCore::CloneDeserializer::readTerminal): 2012-02-22 Adrienne Walker [chromium] Unreviewed speculative chromium-mac build fix. https://bugs.webkit.org/show_bug.cgi?id=75874 This broke in r108581. * platform/graphics/chromium/cc/CCLayerAnimationController.h: (WebCore): 2012-02-22 Raymond Toy exponentialRampToValue doesn't use starting value https://bugs.webkit.org/show_bug.cgi?id=78035 Reviewed by Chris Rogers. Test: webaudio/audioparam-exponentialRampToValueAtTime.html * webaudio/AudioParamTimeline.cpp: (WebCore::AudioParamTimeline::valuesForTimeRangeImpl): Set starting value for exponential ramp. 2012-02-22 Andreas Kling Make parsing color presentation attributes do less pointless work. Reviewed by Antti Koivisto. Let HTMLElement::addHTMLColorToStyle() construct the color CSSValue directly rather than passing a string that has to go through CSSParser. * css/StylePropertySet.cpp: (WebCore::StylePropertySet::setProperty): * css/StylePropertySet.h: Added a setProperty(propertyID, CSSValue) overload that expands shorthand properties if necessary. Also added a little comment about the behavior differences between setProperty() overloads. * html/HTMLElement.cpp: (WebCore::parseColorStringWithCrazyLegacyRules): Changed this to return an RGBA32. (WebCore::HTMLElement::addHTMLColorToStyle): Figure out the RGB value and construct a (pooled) CSSValue directly. 2012-02-22 Ian Vollick [chromium] Plumb from GraphicsLayer to the cc thread animation code https://bugs.webkit.org/show_bug.cgi?id=75874 Reviewed by James Robinson. * WebCore.gypi: * page/Settings.cpp: (WebCore::Settings::Settings): * page/Settings.h: (WebCore::Settings::setThreadedAnimationEnabled): (WebCore::Settings::threadedAnimationEnabled): (Settings): * platform/graphics/chromium/GraphicsLayerChromium.cpp: (std): (WebCore::GraphicsLayerChromium::addChild): (WebCore::GraphicsLayerChromium::addAnimation): (WebCore): (WebCore::GraphicsLayerChromium::pauseAnimation): (WebCore::GraphicsLayerChromium::removeAnimation): (WebCore::GraphicsLayerChromium::suspendAnimations): (WebCore::GraphicsLayerChromium::resumeAnimations): (WebCore::GraphicsLayerChromium::setContentsToMedia): (WebCore::GraphicsLayerChromium::updateLayerPreserves3D): (WebCore::GraphicsLayerChromium::mapAnimationNameToId): * platform/graphics/chromium/GraphicsLayerChromium.h: (GraphicsLayerChromium): * platform/graphics/chromium/LayerChromium.cpp: (WebCore::LayerChromium::LayerChromium): (WebCore::LayerChromium::addAnimation): (WebCore): (WebCore::LayerChromium::pauseAnimation): (WebCore::LayerChromium::removeAnimation): (WebCore::LayerChromium::suspendAnimations): (WebCore::LayerChromium::resumeAnimations): (WebCore::LayerChromium::setLayerAnimationController): (WebCore::LayerChromium::pushPropertiesTo): * platform/graphics/chromium/LayerChromium.h: (WebCore): (LayerChromium): (WebCore::LayerChromium::layerAnimationController): (WebCore::LayerChromium::numChildren): * platform/graphics/chromium/cc/CCActiveAnimation.cpp: (WebCore::CCActiveAnimation::create): (WebCore): (WebCore::CCActiveAnimation::CCActiveAnimation): (WebCore::CCActiveAnimation::~CCActiveAnimation): (WebCore::CCActiveAnimation::isWaiting): (WebCore::CCActiveAnimation::isRunningOrHasRun): (WebCore::CCActiveAnimation::cloneForImplThread): (WebCore::CCActiveAnimation::synchronizeProperties): * platform/graphics/chromium/cc/CCActiveAnimation.h: (CCActiveAnimation): (WebCore::CCActiveAnimation::AnimationSignature::AnimationSignature): (AnimationSignature): (WebCore::CCActiveAnimation::id): (WebCore::CCActiveAnimation::group): (WebCore::CCActiveAnimation::signature): * platform/graphics/chromium/cc/CCAnimationCurve.h: (CCAnimationCurve): (CCTransformAnimationCurve): * platform/graphics/chromium/cc/CCAnimationEvents.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCAnimationCurve.h. (WebCore): (WebCore::CCAnimationStartedEvent::CCAnimationStartedEvent): (CCAnimationStartedEvent): * platform/graphics/chromium/cc/CCLayerAnimationController.cpp: Added. (WebCore): (WebCore::CCLayerAnimationController::CCLayerAnimationController): (WebCore::CCLayerAnimationController::~CCLayerAnimationController): (WebCore::CCLayerAnimationController::create): (WebCore::CCLayerAnimationController::addAnimation): (WebCore::CCLayerAnimationController::pauseAnimation): (WebCore::CCLayerAnimationController::removeAnimation): (WebCore::CCLayerAnimationController::suspendAnimations): (WebCore::CCLayerAnimationController::resumeAnimations): (WebCore::CCLayerAnimationController::synchronizeAnimations): (WebCore::CCLayerAnimationController::removeCompletedAnimations): (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread): (WebCore::CCLayerAnimationController::removeAnimationsCompletedOnMainThread): (WebCore::CCLayerAnimationController::pushAnimationProperties): (WebCore::CCLayerAnimationController::getActiveAnimation): (WebCore::CCLayerAnimationController::remove): * platform/graphics/chromium/cc/CCLayerAnimationController.h: Added. (WebCore): (CCLayerAnimationController): (WebCore::CCLayerAnimationController::activeAnimations): * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.cpp: (WebCore::CCLayerAnimationControllerImpl::~CCLayerAnimationControllerImpl): (WebCore): (WebCore::CCLayerAnimationControllerImpl::animate): (WebCore::CCLayerAnimationControllerImpl::add): (WebCore::CCLayerAnimationControllerImpl::getActiveAnimation): (WebCore::CCLayerAnimationControllerImpl::startAnimationsWaitingForNextTick): (WebCore::CCLayerAnimationControllerImpl::startAnimationsWaitingForStartTime): (WebCore::CCLayerAnimationControllerImpl::startAnimationsWaitingForTargetAvailability): (WebCore::CCLayerAnimationControllerImpl::purgeFinishedAnimations): (WebCore::CCLayerAnimationControllerImpl::tickAnimations): * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.h: (CCLayerAnimationControllerImplClient): (CCLayerAnimationControllerImpl): * platform/graphics/chromium/cc/CCLayerImpl.cpp: (WebCore::CCLayerImpl::CCLayerImpl): * platform/graphics/chromium/cc/CCLayerImpl.h: (CCLayerImpl): (WebCore::CCLayerImpl::id): (WebCore::CCLayerImpl::opacity): (WebCore::CCLayerImpl::transform): (WebCore::CCLayerImpl::bounds): (WebCore::CCLayerImpl::layerAnimationController): * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: (WebCore::CCLayerTreeHost::finishCommitOnImplThread): (WebCore::CCLayerTreeHost::setAnimationEvents): (WebCore): (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread): * platform/graphics/chromium/cc/CCLayerTreeHost.h: (WebCore::CCSettings::CCSettings): (CCSettings): (CCLayerTreeHost): * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl): (WebCore::CCLayerTreeHostImpl::animate): (WebCore::CCLayerTreeHostImpl::animateLayersRecursive): (WebCore): (WebCore::CCLayerTreeHostImpl::animatePageScale): (WebCore::CCLayerTreeHostImpl::animateLayers): * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: (CCLayerTreeHostImplClient): (CCLayerTreeHostImpl): (WebCore::CCLayerTreeHostImpl::needsAnimateLayers): (WebCore::CCLayerTreeHostImpl::setNeedsAnimateLayers): * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp: (WebCore::CCSingleThreadProxy::postAnimationEventsToMainThreadOnImplThread): (WebCore): * platform/graphics/chromium/cc/CCSingleThreadProxy.h: (CCSingleThreadProxy): (WebCore): (DebugScopedSetMainThread): (WebCore::DebugScopedSetMainThread::DebugScopedSetMainThread): (WebCore::DebugScopedSetMainThread::~DebugScopedSetMainThread): * platform/graphics/chromium/cc/CCThreadProxy.cpp: (WebCore::CCThreadProxy::postAnimationEventsToMainThreadOnImplThread): (WebCore): (WebCore::CCThreadProxy::setAnimationEvents): * platform/graphics/chromium/cc/CCThreadProxy.h: (CCThreadProxy): 2012-02-22 Anders Carlsson Subframes with scrollable areas must be added to the non-fast scrollable region https://bugs.webkit.org/show_bug.cgi?id=79306 Reviewed by Andreas Kling. When computing the non-fast scrollable region, add subframes with scrollable regions to the region. * page/scrolling/ScrollingCoordinator.cpp: (WebCore::computeNonFastScrollableRegion): 2012-02-22 Nate Chapin CachedResourceLoader ignores the Range header in determineRavlidationPolicy(), resulting in incorrect cache hits. Reviewed by Adam Barth. Test: http/tests/xmlhttprequest/range-test.html Test written by Aaron Colwell (acolwell@chromium.org). * loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::determineRevalidationPolicy): 2012-02-22 Antti Koivisto REGRESSION (r104060): Web font is not loaded if specified by link element dynamically inserted https://bugs.webkit.org/show_bug.cgi?id=79186 Reviewed by Andreas Kling. Test: fast/css/font-face-insert-link.html If a dynamically inserted stylesheet contains @font-face rules, we may fail to update the rendering. Before r104060 the style selector was destroyed on every style change, and the font selector along with it. This is no longer the case and we can't rely on comparing font selector pointers when comparing Fonts for equality. This patch adds version number to the font selector and checks it in Font::operator==. The version number is incremented when new font-face rules are added to the font selector. FontFallbackList is an object shared between Fonts so the extra field shouldn't matter much in terms of memory. * css/CSSFontSelector.cpp: (WebCore::CSSFontSelector::CSSFontSelector): (WebCore::CSSFontSelector::addFontFaceRule): * css/CSSFontSelector.h: (CSSFontSelector): * platform/graphics/Font.cpp: (WebCore::Font::operator==): * platform/graphics/FontFallbackList.cpp: (WebCore::FontFallbackList::FontFallbackList): (WebCore::FontFallbackList::invalidate): * platform/graphics/FontFallbackList.h: (FontFallbackList): (WebCore::FontFallbackList::fontSelectorVersion): * platform/graphics/FontSelector.h: (FontSelector): 2012-02-22 Nate Chapin Prevent CachedRawResource from sending the same data chunk multiple times. https://bugs.webkit.org/show_bug.cgi?id=78810 Reviewed by Adam Barth. If a CachedRawResource receives data while a CachedRawResourceCallback timer is active, the incremental data will be sent to the client, followed but all data received so far, resulting in invalid data. Resolving this adds complexity to CachedRawResource and requires making a few more CachedResource functions virtual, so push the callback logic into CachedResource where it can be implemented more cleanly. Test: inspector/debugger/script-formatter-console.html should no longer be flaky. * loader/cache/CachedRawResource.cpp: CachedRawResourceCallback renamed and moved to CachedResource. (WebCore::CachedRawResource::didAddClient): More or less the same as sendCallbacks() was. * loader/cache/CachedRawResource.h: * loader/cache/CachedResource.cpp: (WebCore::CachedResource::addClient): Check the return value of addClientToSet() to determine whether or not to call didAddClient. (WebCore::CachedResource::didAddClient): May be called during addClient(), or may be called on a timer. If called on a timer, move the client between sets. (WebCore::CachedResource::addClientToSet): Determine whether didAddClient() can be called synchronously and return true if it can. (WebCore::CachedResource::removeClient): Ensure we cancel pending callbacks if necessary. (WebCore::CachedResource::CachedResourceCallback::CachedResourceCallback): Renamed and moved from CachedRawResource. * loader/cache/CachedResource.h: (WebCore::CachedResource::hasClients): Check m_clientsAwaitingCallback as well as m_clients. (WebCore::CachedResource::CachedResourceCallback::schedule): (WebCore::CachedResource::hasClient): Helper for calling contains() on both m_clientsAwaitingCallback and m_clients. 2012-02-22 Daniel Bates Update change log entry for r108561 to reflect removal of "if (m_dispatchSoonList.isEmpty())". https://bugs.webkit.org/show_bug.cgi?id=78840 Mention removal of unnecessary check for empty list m_dispatchSoonList in EventSender::cancelEvent(). Also, fix the date in the change log entry for changeset r108562 since it landed today (02/22/2012). 2012-02-22 Ryosuke Niwa Remove the remaining uses of CSSStyleDeclaration in Editor https://bugs.webkit.org/show_bug.cgi?id=78939 Reviewed by Enrica Casucci. Changed the argument types of shouldApplyStyle, applyParagraphStyle, applyStyleToSelection, applyParagraphStyleToSelection, and computeAndSetTypingStyle in Editor from CSSStyleDeclaration to StylePropertySet. * WebCore.exp.in: * WebCore.xcodeproj/project.pbxproj: * editing/Editor.cpp: (WebCore::Editor::applyStyle): (WebCore::Editor::shouldApplyStyle): (WebCore::Editor::applyParagraphStyle): (WebCore::Editor::applyStyleToSelection): (WebCore::Editor::applyParagraphStyleToSelection): (WebCore::Editor::setBaseWritingDirection): (WebCore::Editor::computeAndSetTypingStyle): * editing/Editor.h: (WebCore): (Editor): * editing/EditorCommand.cpp: (WebCore::applyCommandToFrame): (WebCore::executeApplyParagraphStyle): (WebCore::executeMakeTextWritingDirectionLeftToRight): (WebCore::executeMakeTextWritingDirectionNatural): (WebCore::executeMakeTextWritingDirectionRightToLeft): * loader/EmptyClients.h: (WebCore::EmptyEditorClient::shouldApplyStyle): * page/DragController.cpp: (WebCore::DragController::concludeEditDrag): * page/EditorClient.h: (WebCore): (EditorClient): 2012-02-22 Daniel Bates Abstract ImageEventSender into a general purpose EventSender https://bugs.webkit.org/show_bug.cgi?id=78840 Reviewed by Adam Barth. Abstract the functionality in ImageEventSender so that it can be used again. This functionality may be useful in fixing WebKit Bug #38995. No functionality was changed; no new tests. * GNUmakefile.list.am: Added EventSender.h. * Target.pri: Ditto. * WebCore.gypi: Ditto. * WebCore.vcproj/WebCore.vcproj: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto. * dom/EventSender.h: Added. (WebCore): (EventSender): (WebCore::EventSender::eventType): (WebCore::EventSender::hasPendingEvents): (WebCore::EventSender::timerFired): (WebCore::::EventSender): (WebCore::::dispatchEventSoon): (WebCore::::cancelEvent): Removed unnecessary check for empty list m_dispatchSoonList; As far as I can tell this is an artifact of using a QPtrList data structure for this functionality when it was originally in DocumentImpl::removeImage() (see ), which actually removed items from a list (as opposed to zeroing them out as we do now). (WebCore::::dispatchPendingEvents): * loader/ImageLoader.cpp: Modified to use EventSender. (WebCore): (WebCore::ImageLoader::dispatchPendingEvent): Added; called by EventSender when the ImageLoader should dispatch a pending BeforeLoad or Load event. * loader/ImageLoader.h: (WebCore): (ImageLoader): 2012-02-22 Max Vujovic Paddings and borders on root SVG element with viewbox causes child SVG elements to be rendered with the incorrect size https://bugs.webkit.org/show_bug.cgi?id=78613 Reviewed by Nikolas Zimmermann. When computing its localToBorderBoxTransform, RenderSVGRoot was using its width and height as the dimensions of the SVG viewport. However, width and height include CSS borders and paddings, which are not part of the SVG viewport area. Now, RenderSVGRoot uses its contentWidth and contentHeight, which correspond to the SVG viewport area. Tests: svg/custom/svg-root-padding-border-margin-expected.html svg/custom/svg-root-padding-border-margin.html * rendering/svg/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::buildLocalToBorderBoxTransform): 2012-02-22 Raphael Kubo da Costa [EFL] Get rid of GeolocationServiceEfl https://bugs.webkit.org/show_bug.cgi?id=79270 Reviewed by Adam Barth. These were just a bunch of dummy files with no real functionality, and removing them helps the preparation of bug 78853, which will make client-based geolocation the default. No new tests, this functionality was not used. * PlatformEfl.cmake: * platform/efl/GeolocationServiceEfl.cpp: Removed. * platform/efl/GeolocationServiceEfl.h: Removed. 2012-02-22 Julien Chaffraix Clean-up RenderTableSection::calcRowLogicalHeight https://bugs.webkit.org/show_bug.cgi?id=77705 Reviewed by Eric Seidel. Refactoring / simplication of the code. This change removes some variables that were unneeded and were hiding what the code was really doing. Also some of the code was split and moved down to RenderTableCell. * rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::logicalHeightForRowSizing): * rendering/RenderTableCell.h: (RenderTableCell): Added the previous helper function to calculate the cell's adjusted logical height. * rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::calcRowLogicalHeight): Removed some variables, simplified the rowspan logic to be clearer (and added a comment about how we handle rowspans). 2012-02-22 Adam Barth Move FILE_SYSTEM code out of DOMWindow and into the fileapi folder https://bugs.webkit.org/show_bug.cgi?id=79259 Reviewed by Eric Seidel. This patch is part of our ongoing effort to remove ifdefs from code classes. The FILE_SYSTEM code in DOMWindow doesn't really have any necessary connection to DOMWindow. DOMWindow is just the context object that the API hangs off of. This patch moves the FILE_SYSTEM code into the fileapi folder using [Supplemental]. * CMakeLists.txt: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gypi: * fileapi/DOMWindowFileSystem.cpp: Added. (WebCore): (WebCore::DOMWindowFileSystem::DOMWindowFileSystem): (WebCore::DOMWindowFileSystem::~DOMWindowFileSystem): (WebCore::DOMWindowFileSystem::webkitRequestFileSystem): (WebCore::DOMWindowFileSystem::webkitResolveLocalFileSystemURL): * fileapi/DOMWindowFileSystem.h: Added. (WebCore): (DOMWindowFileSystem): * fileapi/DOMWindowFileSystem.idl: Added. * page/DOMWindow.cpp: (WebCore): * page/DOMWindow.h: (WebCore): (DOMWindow): * page/DOMWindow.idl: 2012-02-22 Luke Macpherson Re-implement many more HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macros in CSSStyleApplyProperty. https://bugs.webkit.org/show_bug.cgi?id=79200 Reviewed by Andreas Kling. No new tests / refactoring only. * css/CSSStyleApplyProperty.cpp: (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::collectMatchingRulesForList): * rendering/style/RenderStyle.h: 2012-02-22 Tom Sepez XSSAuditor bypass with tags and html-entities. https://bugs.webkit.org/show_bug.cgi?id=78836 Reviewed by Adam Barth. Tests: http/tests/security/xssAuditor/iframe-onload-in-svg-tag.html http/tests/security/xssAuditor/script-tag-inside-svg-tag.html http/tests/security/xssAuditor/script-tag-inside-svg-tag2.html http/tests/security/xssAuditor/script-tag-inside-svg-tag3.html * html/parser/XSSAuditor.cpp: (WebCore::isNonCanonicalCharacter): (WebCore::isTerminatingCharacter): (WebCore): (WebCore::startsHTMLCommentAt): (WebCore::startsSingleLineCommentAt): (WebCore::fullyDecodeString): (WebCore::XSSAuditor::XSSAuditor): (WebCore::XSSAuditor::init): (WebCore::XSSAuditor::filterToken): (WebCore::XSSAuditor::filterStartToken): (WebCore::XSSAuditor::filterEndToken): (WebCore::XSSAuditor::filterCharacterToken): (WebCore::XSSAuditor::filterScriptToken): (WebCore::XSSAuditor::filterObjectToken): (WebCore::XSSAuditor::filterParamToken): (WebCore::XSSAuditor::filterEmbedToken): (WebCore::XSSAuditor::filterAppletToken): (WebCore::XSSAuditor::filterIframeToken): (WebCore::XSSAuditor::filterMetaToken): (WebCore::XSSAuditor::filterBaseToken): (WebCore::XSSAuditor::filterFormToken): (WebCore::XSSAuditor::decodedSnippetForAttribute): (WebCore::XSSAuditor::snippetForJavaScript): * html/parser/XSSAuditor.h: (XSSAuditor): 2012-02-22 Anders Carlsson Crash when marking cached pages for full style recalc https://bugs.webkit.org/show_bug.cgi?id=79276 Reviewed by Beth Dakin. Guard against a null history item. * history/BackForwardController.cpp: (WebCore::BackForwardController::markPagesForFullStyleRecalc): 2012-02-22 Ken Buchanan Crash from empty anonymous block preceding :before content https://bugs.webkit.org/show_bug.cgi?id=78250 Reviewed by David Hyatt. RenderListMarkers getting removed from the tree in updateMarkerLocation() can leave parent anonymous blocks behind with no children. This was confusing updateBeforeAfterContent() because it does not expect an empty block to precede :before content renderers. Fix is to remove the anonymous block if it will lose all of its children. * rendering/RenderListItem.cpp: (WebCore::RenderListItem::updateMarkerLocation): 2012-02-22 Abhishek Arya Crash due to accessing removed parent lineboxes when clearing view selection. https://bugs.webkit.org/show_bug.cgi?id=79264 Reviewed by Eric Seidel. When our block needed a full layout, we were deleting our own lineboxes and letting descendant children (at any level in hierarchy and not just immediate children) clear their own lineboxes as we keep laying them out. This was problematic because those descendant children lineboxes were pointing to removed parent lineboxes in the meantime. An example scenario where this would go wrong is first-letter object removal, which can cause clearing view selection, leading to accessing parent lineboxes. The patch modifies clearing the entire linebox tree upfront. It shouldn't introduce performance issues since it will eventually happen as we are laying out those children. Test: fast/css-generated-content/first-letter-textbox-parent-crash.html * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::layoutInlineChildren): 2012-02-22 Abhishek Arya Cloning and linebox issues in multi-column layout. https://bugs.webkit.org/show_bug.cgi?id=78273 Reviewed by Eric Seidel. Tests: fast/multicol/span/clone-flexbox.html fast/multicol/span/clone-summary.html fast/multicol/span/textbox-not-removed-crash.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::clone): Fix cloning algorithm to take care of cloning descendant classes of RenderBlock. (WebCore::RenderBlock::splitBlocks): When we move our inline children to cloneBlock, we need to clear our entire line box tree. Any descendant child in the hierarchy could be a part of our line box tree and will never get cleared since the child has moved to new parent cloneBlock. 2012-02-22 Tim Dresser CCLayerTreeHostImpl calls didDraw more frequently than willDraw https://bugs.webkit.org/show_bug.cgi?id=79139 Reviewed by James Robinson. Ensure that didDraw is called if and only if willDraw was called previously. CCLayerTreeHostImplTest.didDrawNotCalledOnHiddenLayer has been added to ensure that hidden layers, for which willDraw is not called, will also not have didDraw called. * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: (WebCore::CCLayerTreeHostImpl::drawLayers): * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp: (WebCore::CCVideoLayerImpl::didDraw): 2012-02-22 Levi Weintraub ScrollbarThemeComposite::thumbPosition uses the result of a divide by zero https://bugs.webkit.org/show_bug.cgi?id=78910 Reviewed by Eric Seidel. Adding a check to avoid doing a floating point divide by zero and assigning NaN to an integer. This causes problems with our conversion to subpixel layout, which asserts when we overflow. * platform/ScrollbarThemeComposite.cpp: (WebCore::ScrollbarThemeComposite::thumbPosition): 2012-02-22 Raymond Liu Have the DynamicsCompressorNode support multi-channel data https://bugs.webkit.org/show_bug.cgi?id=77856 Reviewed by Chris Rogers. * platform/audio/DynamicsCompressor.cpp: (WebCore::DynamicsCompressor::DynamicsCompressor): (WebCore::DynamicsCompressor::setEmphasisStageParameters): (WebCore::DynamicsCompressor::process): (WebCore::DynamicsCompressor::reset): (WebCore::DynamicsCompressor::setNumberOfChannels): (WebCore): * platform/audio/DynamicsCompressor.h: (DynamicsCompressor): * platform/audio/DynamicsCompressorKernel.cpp: (WebCore::DynamicsCompressorKernel::DynamicsCompressorKernel): (WebCore::DynamicsCompressorKernel::setNumberOfChannels): (WebCore): (WebCore::DynamicsCompressorKernel::setPreDelayTime): (WebCore::DynamicsCompressorKernel::process): (WebCore::DynamicsCompressorKernel::reset): * platform/audio/DynamicsCompressorKernel.h: (DynamicsCompressorKernel): * webaudio/DynamicsCompressorNode.cpp: (WebCore::DynamicsCompressorNode::DynamicsCompressorNode): (WebCore::DynamicsCompressorNode::initialize): 2012-02-22 Bear Travis Not correctly recalculating layout for elements within nested SVG elements https://bugs.webkit.org/show_bug.cgi?id=77535 Reviewed by Dirk Schulze. Relatively positioned text is not correctly updating its position when the size of its nearest viewport changes. Updating to mark text for layout when viewPort size changes. Test: svg/repaint/inner-svg-change-viewPort-relative.svg * rendering/svg/SVGRenderSupport.cpp: (WebCore::SVGRenderSupport::layoutChildren): 2012-02-22 Alexei Svitkine [chromium] Fix remaining compositing/rubberbanding test failures https://bugs.webkit.org/show_bug.cgi?id=78008 These were happening due to the fact that ScrollView wasn't updating the overhang layer when the contentsSize was updated. This is necessary because calculateOverhangAreasForPainting() takes the contentsSize into account when determining whether the overhang areas are visible. Reviewed by James Robinson. Re-enabled the following tests with updated baselines: * platform/chromium/compositing/rubberbanding/transform-overhang-e-expected.png: * platform/chromium/compositing/rubberbanding/transform-overhang-s-expected.png: * platform/chromium/compositing/rubberbanding/transform-overhang-se-expected.png: * platform/chromium/test_expectations.txt: * platform/ScrollView.cpp: (WebCore::ScrollView::setContentsSize): (WebCore::ScrollView::scrollContents): (WebCore::ScrollView::updateOverhangAreas): (WebCore): * platform/ScrollView.h: (ScrollView): 2012-02-22 Vsevolod Vlasov Web Inspector: [Regression] network worker tests crash on qt. https://bugs.webkit.org/show_bug.cgi?id=79263 Reviewed by Pavel Feldman. * inspector/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::createDecoder): (WebCore::InspectorPageAgent::cachedResourceContent): 2012-02-22 Adrienne Walker Unreviewed, rolling out r108518. http://trac.webkit.org/changeset/108518 https://bugs.webkit.org/show_bug.cgi?id=75864 Breaks surfaceOcclusionWithOverlappingSiblingSurfaces unit test. * WebCore.gypi: * platform/graphics/chromium/cc/CCLayerIterator.cpp: (WebCore): (WebCore::CCLayerIteratorActions::BackToFront::begin): (WebCore::CCLayerIteratorActions::BackToFront::end): (WebCore::CCLayerIteratorActions::BackToFront::next): (WebCore::CCLayerIteratorActions::FrontToBack::begin): (WebCore::CCLayerIteratorActions::FrontToBack::end): (WebCore::CCLayerIteratorActions::FrontToBack::next): (WebCore::CCLayerIteratorActions::FrontToBack::goToHighestInSubtree): * platform/graphics/chromium/cc/CCLayerIterator.h: (WebCore): (WebCore::CCLayerIterator::CCLayerIterator): (WebCore::CCLayerIterator::operator++): (WebCore::CCLayerIterator::operator==): (WebCore::CCLayerIterator::operator->): (WebCore::CCLayerIterator::operator*): (WebCore::CCLayerIterator::representsTargetRenderSurface): (WebCore::CCLayerIterator::representsContributingRenderSurface): (WebCore::CCLayerIterator::targetRenderSurfaceLayer): (CCLayerIterator): (BackToFront): (FrontToBack): * platform/graphics/chromium/cc/CCLayerIteratorPosition.h: Added. (WebCore): (CCLayerIteratorPositionValue): (WebCore::CCLayerIteratorPosition::CCLayerIteratorPosition): (CCLayerIteratorPosition): (WebCore::CCLayerIteratorPosition::currentLayer): (WebCore::CCLayerIteratorPosition::currentLayerRepresentsContributingRenderSurface): (WebCore::CCLayerIteratorPosition::currentLayerRepresentsTargetRenderSurface): (WebCore::CCLayerIteratorPosition::targetRenderSurfaceLayer): (WebCore::CCLayerIteratorPosition::targetRenderSurface): (WebCore::CCLayerIteratorPosition::targetRenderSurfaceChildren): (WebCore::CCLayerIteratorPosition::operator==): 2012-02-22 Dan Bernstein REGRESSION (r62632): page-break-inside: avoid is ignored https://bugs.webkit.org/show_bug.cgi?id=79262 Reviewed by Adele Peterson. This was disabled in r62632 because of . Changes to the pagination code since then have invalidated that bug, so enabling the feature again does not re-introduce the bug. Updated expected results for printing/page-break-inside-avoid.html. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::adjustForUnsplittableChild): 2012-02-22 Philippe Normand [GStreamer] webkitwebsrc: use HTTP referer provided by MediaPlayer https://bugs.webkit.org/show_bug.cgi?id=79236 Reviewed by Martin Robinson. Store a pointer to the MediaPlayer object in the private structure of the WebKitWebSrc element so we can call its public methods, like ::referrer(). * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::sourceChanged): * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: (_WebKitWebSrcPrivate): * platform/graphics/gstreamer/WebKitWebSourceGStreamer.h: 2012-02-22 Martin Robinson [GTK] Clean build is broken when using make -j https://bugs.webkit.org/show_bug.cgi?id=76388 No new tests. This is just a build fix. Use order-only dependencies to ensure that built sources are built before files that depend on them. * GNUmakefile.am: Establish an order-only dependency on some built sources before starting to build non-generated sources. Rename some temporary files and variables to be more consistent. * bindings/gobject/GNUmakefile.am: Updated to reflect new variable names. 2012-02-22 Dana Jansens [Chromium] New CCOcclusionTracker class with tests https://bugs.webkit.org/show_bug.cgi?id=78549 Reviewed by James Robinson. Adds a CCOcclusionTrackerBase template class that is able to track occlusion of layers while traversing the layer tree from front-to-back, with typedefed versions for the main and impl threads. At each step of the front-to-back traversal, the class should be notified of changes to the current render target, and when done working with a layer, the layer is added the tracked occlusion. The class provides tests for checking if a rect in content space for a layer/surface is occluded by others in front of it. Unit tests: CCOcclusionTrackerTest.cpp * WebCore.gypi: * platform/graphics/chromium/cc/CCOcclusionTracker.cpp: Added. (WebCore): (WebCore::::enterTargetRenderSurface): (WebCore::::finishedTargetRenderSurface): (WebCore::transformSurfaceOpaqueRegion): (WebCore::::leaveToTargetRenderSurface): (WebCore::contentToScreenSpaceTransform): (WebCore::contentToTargetSurfaceTransform): (WebCore::computeOcclusionBehindLayer): (WebCore::::markOccludedBehindLayer): (WebCore::testContentRectOccluded): (WebCore::::occluded): (WebCore::::surfaceOccluded): (WebCore::rectSubtractRegion): (WebCore::computeUnoccludedContentRect): (WebCore::::unoccludedContentRect): (WebCore::::surfaceUnoccludedContentRect): (WebCore::::currentOcclusionInScreenSpace): (WebCore::::currentOcclusionInTargetSurface): * platform/graphics/chromium/cc/CCOcclusionTracker.h: Added. (WebCore): (CCOcclusionTrackerBase): (WebCore::CCOcclusionTrackerBase::CCOcclusionTrackerBase): (StackObject): 2012-02-22 Joshua Bell [Chromium] IndexedDB: Integrate with about:tracing https://bugs.webkit.org/show_bug.cgi?id=78831 Annotate interesting IDB functions so they show up in the tracing utility included in the Chromium port. Reviewed by Tony Chang. * WebCore.gypi: * WebCore.xcodeproj/project.pbxproj: * bindings/v8/IDBBindingUtilities.cpp: (WebCore::createIDBKeyFromSerializedValueAndKeyPath): (WebCore::injectIDBKeyIntoSerializedValue): * storage/IDBCursor.cpp: (WebCore::IDBCursor::direction): (WebCore::IDBCursor::key): (WebCore::IDBCursor::primaryKey): (WebCore::IDBCursor::value): (WebCore::IDBCursor::update): (WebCore::IDBCursor::continueFunction): (WebCore::IDBCursor::deleteFunction): * storage/IDBCursorBackendImpl.cpp: (WebCore::IDBCursorBackendImpl::direction): (WebCore::IDBCursorBackendImpl::key): (WebCore::IDBCursorBackendImpl::primaryKey): (WebCore::IDBCursorBackendImpl::value): (WebCore::IDBCursorBackendImpl::update): (WebCore::IDBCursorBackendImpl::continueFunction): (WebCore::IDBCursorBackendImpl::continueFunctionInternal): (WebCore::IDBCursorBackendImpl::deleteFunction): (WebCore::IDBCursorBackendImpl::prefetchContinue): (WebCore::IDBCursorBackendImpl::prefetchContinueInternal): (WebCore::IDBCursorBackendImpl::prefetchReset): (WebCore::IDBCursorBackendImpl::close): * storage/IDBDatabase.cpp: (WebCore::IDBDatabase::dispatchEvent): * storage/IDBIndex.cpp: (WebCore::IDBIndex::openCursor): (WebCore::IDBIndex::count): (WebCore::IDBIndex::openKeyCursor): (WebCore::IDBIndex::get): (WebCore::IDBIndex::getKey): * storage/IDBIndexBackendImpl.cpp: (WebCore::IDBIndexBackendImpl::openCursorInternal): (WebCore::IDBIndexBackendImpl::openCursor): (WebCore::IDBIndexBackendImpl::openKeyCursor): (WebCore::IDBIndexBackendImpl::countInternal): (WebCore::IDBIndexBackendImpl::count): (WebCore::IDBIndexBackendImpl::getInternal): (WebCore::IDBIndexBackendImpl::get): (WebCore::IDBIndexBackendImpl::getKey): * storage/IDBObjectStore.cpp: (WebCore::IDBObjectStore::name): (WebCore::IDBObjectStore::keyPath): (WebCore::IDBObjectStore::indexNames): (WebCore::IDBObjectStore::transaction): (WebCore::IDBObjectStore::get): (WebCore::IDBObjectStore::add): (WebCore::IDBObjectStore::put): (WebCore::IDBObjectStore::deleteFunction): (WebCore::IDBObjectStore::clear): (WebCore::IDBObjectStore::createIndex): (WebCore::IDBObjectStore::index): (WebCore::IDBObjectStore::openCursor): (WebCore::IDBObjectStore::count): * storage/IDBObjectStoreBackendImpl.cpp: (WebCore::IDBObjectStoreBackendImpl::get): (WebCore::IDBObjectStoreBackendImpl::getInternal): (WebCore::fetchKeyFromKeyPath): (WebCore::injectKeyIntoKeyPath): (WebCore::IDBObjectStoreBackendImpl::put): (WebCore::IDBObjectStoreBackendImpl::putInternal): (WebCore::IDBObjectStoreBackendImpl::deleteFunction): (WebCore::IDBObjectStoreBackendImpl::deleteInternal): (WebCore::IDBObjectStoreBackendImpl::clear): (WebCore::IDBObjectStoreBackendImpl::openCursor): (WebCore::IDBObjectStoreBackendImpl::openCursorInternal): (WebCore::IDBObjectStoreBackendImpl::count): (WebCore::IDBObjectStoreBackendImpl::countInternal): * storage/IDBRequest.cpp: (WebCore::IDBRequest::onSuccess): (WebCore::IDBRequest::onSuccessWithContinuation): (WebCore::IDBRequest::dispatchEvent): * storage/IDBTracing.h: Added. * storage/IDBTransaction.cpp: (WebCore::IDBTransaction::dispatchEvent): * storage/IDBTransactionBackendImpl.cpp: (WebCore::IDBTransactionBackendImpl::abort): (WebCore::IDBTransactionBackendImpl::commit): (WebCore::IDBTransactionBackendImpl::taskTimerFired): (WebCore::IDBTransactionBackendImpl::taskEventTimerFired): 2012-02-22 Dana Jansens [chromium] Push CCLayerIteratorPosition struct into CCLayerIterator class. https://bugs.webkit.org/show_bug.cgi?id=75864 Reviewed by James Robinson. * platform/graphics/chromium/cc/CCLayerIterator.cpp: (WebCore::CCLayerIteratorActions::BackToFront::begin): (WebCore::CCLayerIteratorActions::BackToFront::end): (WebCore::CCLayerIteratorActions::BackToFront::next): (WebCore::CCLayerIteratorActions::FrontToBack::begin): (WebCore::CCLayerIteratorActions::FrontToBack::end): (WebCore::CCLayerIteratorActions::FrontToBack::next): (WebCore::CCLayerIteratorActions::FrontToBack::goToHighestInSubtree): * platform/graphics/chromium/cc/CCLayerIterator.h: (WebCore::CCLayerIterator::CCLayerIterator): (WebCore::CCLayerIterator::operator++): (WebCore::CCLayerIterator::operator==): (WebCore::CCLayerIterator::operator->): (WebCore::CCLayerIterator::operator*): (WebCore::CCLayerIterator::representsTargetRenderSurface): (WebCore::CCLayerIterator::representsContributingRenderSurface): (WebCore::CCLayerIterator::currentLayer): (WebCore::CCLayerIterator::currentLayerRepresentsContributingRenderSurface): (WebCore::CCLayerIterator::currentLayerRepresentsTargetRenderSurface): (WebCore::CCLayerIterator::targetRenderSurfaceLayer): (WebCore::CCLayerIterator::targetRenderSurface): (WebCore::CCLayerIterator::targetRenderSurfaceChildren): * platform/graphics/chromium/cc/CCLayerIteratorPosition.h: Removed. 2012-02-22 Pavel Feldman Web Inspector: console doesn't show properly arrays from which tail values have been deleted https://bugs.webkit.org/show_bug.cgi?id=79242 Reviewed by Yury Semikhatsky. * English.lproj/localizedStrings.js: * inspector/front-end/ConsoleMessage.js: (WebInspector.ConsoleMessageImpl.prototype._printArray.appendUndefined): (WebInspector.ConsoleMessageImpl.prototype._printArray): 2012-02-22 Pavel Feldman Web Inspector: warning external font mime (font/font/woff). https://bugs.webkit.org/show_bug.cgi?id=79244 Reviewed by Yury Semikhatsky. * inspector/front-end/Resource.js: 2012-02-22 Yury Semikhatsky Web Inspector: use dots as markers on the counter graphs https://bugs.webkit.org/show_bug.cgi?id=79243 Changed counter graphs marker and counter text styles. Reviewed by Pavel Feldman. * English.lproj/localizedStrings.js: * inspector/front-end/MemoryStatistics.js: (WebInspector.MemoryStatistics): (WebInspector.MemoryStatistics.prototype._createCounterSidebarElement): (WebInspector.MemoryStatistics.prototype.addTimlineEvent): (WebInspector.MemoryStatistics.prototype._draw): (WebInspector.MemoryStatistics.prototype._onMouseOut): (WebInspector.MemoryStatistics.prototype._onMouseOver): (WebInspector.MemoryStatistics.prototype._onMouseMove): (WebInspector.MemoryStatistics.prototype._refreshCurrentValues): (WebInspector.MemoryStatistics.prototype._recordIndexAt): (WebInspector.MemoryStatistics.prototype._highlightCurrentPositionOnGraphs): (WebInspector.MemoryStatistics.prototype._clearMarkers): (WebInspector.MemoryStatistics.prototype._saveImageUnderMarker): (WebInspector.MemoryStatistics.prototype.refresh): (WebInspector.MemoryStatistics.prototype._drawPolyline): (WebInspector.MemoryStatistics.prototype._clear): * inspector/front-end/timelinePanel.css: (.memory-counter-sidebar-info): (.memory-counter-sidebar-info .title): (.memory-counter-sidebar-info .counter-value): 2012-02-22 Pavel Feldman Web Inspector: make 'glue asynchronous events' optional. https://bugs.webkit.org/show_bug.cgi?id=79240 Reviewed by Yury Semikhatsky. * English.lproj/localizedStrings.js: * inspector/front-end/Images/statusbarButtonGlyphs.png: * inspector/front-end/TimelinePanel.js: (WebInspector.TimelinePanel.prototype.get statusBarItems): (WebInspector.TimelinePanel.prototype._createStatusbarButtons): (WebInspector.TimelinePanel.prototype._glueParentButtonClicked): (WebInspector.TimelinePanel.prototype._toggleStartAtZeroButtonClicked): (WebInspector.TimelinePanel.prototype._repopulateRecords): (WebInspector.TimelinePanel.prototype._findParentRecord): (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline): (WebInspector.TimelinePanel.prototype.sidebarResized): (WebInspector.TimelineCalculator.prototype.computeBarGraphPercentages): (WebInspector.TimelineCalculator.prototype.computeBarGraphWindowPosition): (WebInspector.TimelineRecordGraphRow): (WebInspector.TimelineRecordGraphRow.prototype.update): (WebInspector.TimelinePanel.FormattedRecord.prototype._calculateAggregatedStats): * inspector/front-end/timelinePanel.css: (.glue-async-status-bar-item .glyph): (.timeline-start-at-zero-status-bar-item .glyph): 2012-02-22 Vsevolod Vlasov Web Inspector: [REGRESSION] Console xhr logging is broken for async xhrs since r107672. https://bugs.webkit.org/show_bug.cgi?id=79229 Reviewed by Pavel Feldman. Test: http/tests/inspector/console-xhr-logging-async.html * inspector/InspectorResourceAgent.cpp: (WebCore::InspectorResourceAgent::setInitialScriptContent): * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::didFinishLoading): 2012-02-22 Andrey Kosyakov Web Inspector: fix memory counters and start-at-zero modes of timeline panels to co-exist nicely https://bugs.webkit.org/show_bug.cgi?id=79241 Reviewed by Yury Semikhatsky. * inspector/front-end/MemoryStatistics.js: (WebInspector.MemoryStatistics.prototype.addTimlineEvent): * inspector/front-end/TimelineOverviewPane.js: (WebInspector.TimelineOverviewPane): (WebInspector.TimelineOverviewPane.prototype._showTimelines): (WebInspector.TimelineOverviewPane.prototype._showMemoryGraph): (WebInspector.TimelineOverviewPane.prototype.setStartAtZero): (WebInspector.TimelineOverviewPane.prototype._onWindowChanged): * inspector/front-end/TimelinePanel.js: (WebInspector.TimelinePanel.prototype._timelinesOverviewModeChanged): 2012-02-22 Andrey Kosyakov Web Inspector: [experimental] add a mode to display timeline events aligned by the start time https://bugs.webkit.org/show_bug.cgi?id=79123 Reviewed by Pavel Feldman. * inspector/front-end/Images/statusbarButtonGlyphs.png: * inspector/front-end/Settings.js: (WebInspector.ExperimentsSettings): * inspector/front-end/TimelineOverviewPane.js: (WebInspector.TimelineOverviewPane): (WebInspector.TimelineOverviewPane.prototype._showTimelines): (WebInspector.TimelineOverviewPane.prototype._showMemoryGraph): (WebInspector.TimelineOverviewPane.prototype._onWindowChanged): (WebInspector.TimelineOverviewPane.prototype.setStartAtZero): (WebInspector.TimelineOverviewPane.prototype.update): (WebInspector.TimelineOverviewPane.prototype.reset): (WebInspector.TimelineOverviewWindow): (WebInspector.TimelineOverviewWindow.prototype.reset): (WebInspector.TimelineOverviewWindow.prototype._setWindowPosition): (WebInspector.TimelineOverviewWindow.prototype.scrollWindow): (WebInspector.TimelineStartAtZeroOverview): (WebInspector.TimelineStartAtZeroOverview.prototype.reset): (WebInspector.TimelineStartAtZeroOverview.prototype.update): (WebInspector.TimelineStartAtZeroOverview.prototype._filterRecords): (WebInspector.TimelineStartAtZeroOverview.prototype._buildBar): (WebInspector.TimelineStartAtZeroOverview.prototype._onWindowChanged): * inspector/front-end/TimelinePanel.js: (WebInspector.TimelinePanel.prototype.get statusBarItems): (WebInspector.TimelinePanel.prototype._createStatusbarButtons): (WebInspector.TimelinePanel.prototype._toggleStartAtZeroButtonClicked): (WebInspector.TimelinePanel.prototype.get _startAtZero): (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline): (WebInspector.TimelinePanel.prototype.sidebarResized): (WebInspector.TimelinePanel.prototype._onRecordsCleared): (WebInspector.TimelinePanel.prototype._resetPanel): (WebInspector.TimelinePanel.prototype._scheduleRefresh): (WebInspector.TimelinePanel.prototype._refresh): (WebInspector.TimelinePanel.prototype._filterRecords): (WebInspector.TimelinePanel.prototype._refreshRecords): (WebInspector.TimelineCalculator.prototype.computeBarGraphWindowPosition): (WebInspector.TimelineStartAtZeroCalculator): (WebInspector.TimelineStartAtZeroCalculator.prototype.computeBarGraphPercentages): (WebInspector.TimelineStartAtZeroCalculator.prototype.computeBarGraphWindowPosition): (WebInspector.TimelineStartAtZeroCalculator.prototype.calculateWindow): (WebInspector.TimelineStartAtZeroCalculator.prototype.reset): (WebInspector.TimelineStartAtZeroCalculator.prototype.updateBoundaries): (WebInspector.TimelineStartAtZeroCalculator.prototype.formatValue): (WebInspector.TimelinePanel.FormattedRecord): (WebInspector.TimelinePanel.FormattedRecord.prototype._generateAggregatedInfo): (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent): (WebInspector.TimelinePanel.FormattedRecord.prototype._calculateAggregatedStats): (WebInspector.TimelinePanel.FormattedRecord.prototype.get aggregatedStats): (WebInspector.TimelineModel.prototype.get records): (WebInspector.TimelinePresentationModel): (WebInspector.TimelinePresentationModel.prototype.reset): (WebInspector.TimelinePresentationModel.prototype.setWindowIndices): (WebInspector.TimelineRecordFilter): (WebInspector.TimelineRecordFilter.prototype.accept): (WebInspector.TimelineStartAtZeroRecordFilter): (WebInspector.TimelineStartAtZeroRecordFilter.prototype.accept): * inspector/front-end/timelinePanel.css: (.timeline-start-at-zero #timeline-overview-sidebar): (.timeline-start-at-zero #timeline-overview-grid): (.timeline-overview-window): (.timeline-start-at-zero .timeline-overview-window): (.timeline-start-at-zero .timeline-overview-dividers-background): (.timeline-overview-window-rulers): (.timeline-start-at-zero #timeline-overview-memory): (.popover .timeline-loading): (.popover .timeline-scripting): (.popover .timeline-rendering): (.timeline-start-at-zero-status-bar-item .glyph): (.timeline-start-at-zero-status-bar-item.toggled-on .glyph): (.timeline-overview-start-at-zero): (.timeline-overview-start-at-zero-bars): (.timeline-overview-start-at-zero-bars .padding): (.timeline-overview-start-at-zero-bars .timeline-bar-vertical): (.timeline-bar-vertical div:first-child): (.timeline-bar-vertical .timeline-loading): (.timeline-bar-vertical .timeline-scripting): (.timeline-bar-vertical .timeline-rendering): 2012-02-22 Kenneth Rohde Christiansen [Qt] Disregard previous backing store as soon as possible https://bugs.webkit.org/show_bug.cgi?id=79232 Reviewed by Simon Hausmann and No'am Rosenthal. Make it possible to drop non-visible tiles and to test if the current visible rect is fully covered. * platform/graphics/TiledBackingStore.cpp: (WebCore::TiledBackingStore::visibleContentsRect): (WebCore::TiledBackingStore::coverageRatio): (WebCore::TiledBackingStore::visibleAreaIsCovered): (WebCore): (WebCore::TiledBackingStore::createTiles): (WebCore::TiledBackingStore::removeAllNonVisibleTiles): * platform/graphics/TiledBackingStore.h: (TiledBackingStore): 2012-02-22 Simon Hausmann [Qt] Move QMenu dependant scrollbar context menu handling out of WebCore https://bugs.webkit.org/show_bug.cgi?id=79233 Reviewed by Kenneth Rohde Christiansen. Move the code into WebKit/qt/Api/qwebpage.cpp, the only place where it is called from. * Target.pri: Remove ScrollbarQt.cpp from build. * platform/Scrollbar.h: Remove Qt-only context menu handling but make moveThum accessible from the outside. * platform/qt/ScrollbarQt.cpp: Removed. Not needed anymore. 2012-02-22 Vsevolod Vlasov Web Inspector: retrieving content for some XHR requests crashes inspected page renderer https://bugs.webkit.org/show_bug.cgi?id=79026 Reviewed by Pavel Feldman. Fixed loading empty xhr content and xhr content decoding that was broken in r107672. Tests: http/tests/inspector/network/network-cyrillic-xhr.html http/tests/inspector/network/network-empty-xhr.html * inspector/InspectorPageAgent.cpp: (WebCore): (WebCore::InspectorPageAgent::createDecoder): (WebCore::InspectorPageAgent::cachedResourceContent): * inspector/InspectorPageAgent.h: (WebCore): * inspector/NetworkResourcesData.cpp: (WebCore::NetworkResourcesData::ResourceData::decodeDataToContent): (WebCore::NetworkResourcesData::responseReceived): * inspector/NetworkResourcesData.h: (WebCore::NetworkResourcesData::ResourceData::decoder): (WebCore::NetworkResourcesData::ResourceData::setDecoder): 2012-02-22 Peter Rybin Web Inspector: CodeGeneratorInspector.py: remove neural-net-style constructions https://bugs.webkit.org/show_bug.cgi?id=79153 Reviewed by Yury Semikhatsky. CParamType class removed completely, some ("virtual") methods are removed. TypeModel notion is added instead with some minor helper classes and methods. * inspector/CodeGeneratorInspector.py: (DomainNameFixes): (RawTypes.BaseType): (RawTypes.String): (RawTypes.String.get_raw_type_model): (RawTypes.Int): (RawTypes.Int.get_raw_type_model): (RawTypes.Number): (RawTypes.Number.get_raw_type_model): (RawTypes.Bool): (RawTypes.Bool.get_raw_type_model): (RawTypes.Object): (RawTypes.Object.get_raw_type_model): (RawTypes.Any): (RawTypes.Any.get_raw_type_model): (RawTypes.Array): (RawTypes.Array.get_raw_type_model): (replace_right_shift): (CommandReturnPassModel): (CommandReturnPassModel.ByReference): (CommandReturnPassModel.ByReference.__init__): (CommandReturnPassModel.ByReference.get_return_var_type): (CommandReturnPassModel.get_output_argument_prefix): (CommandReturnPassModel.get_output_to_raw_expression): (CommandReturnPassModel.get_output_parameter_type): (CommandReturnPassModel.get_set_return_condition): (CommandReturnPassModel.ByPointer): (CommandReturnPassModel.ByPointer.__init__): (CommandReturnPassModel.ByPointer.get_return_var_type): (TypeModel): (TypeModel.RefPtrBased): (TypeModel.RefPtrBased.__init__): (TypeModel.RefPtrBased.get_optional): (TypeModel.RefPtrBased.get_command_return_pass_model): (TypeModel.RefPtrBased.get_input_param_type_text): (TypeModel.RefPtrBased.get_event_setter_expression_pattern): (TypeModel.Enum): (TypeModel.Enum.__init__): (TypeModel.Enum.get_optional): (TypeModel.Enum.get_optional.EnumOptional): (TypeModel.Enum.get_optional.EnumOptional.get_optional): (TypeModel.Enum.get_optional.EnumOptional.get_command_return_pass_model): (TypeModel.Enum.get_input_param_type_text): (TypeModel.Enum.get_event_setter_expression_pattern): (TypeModel.Enum.get_command_return_pass_model): (TypeModel.ValueType): (TypeModel.ValueType.__init__): (TypeModel.ValueType.get_optional): (TypeModel.ValueType.get_command_return_pass_model): (TypeModel.ValueType.get_input_param_type_text): (TypeModel.ValueType.get_event_setter_expression_pattern): (TypeModel.ValueType.ValueOptional): (TypeModel.ValueType.ValueOptional.__init__): (TypeModel.ValueType.ValueOptional.get_optional): (TypeModel.ValueType.ValueOptional.get_command_return_pass_model): (TypeModel.ValueType.ValueOptional.get_input_param_type_text): (TypeModel.ValueType.ValueOptional.get_event_setter_expression_pattern): (TypeModel.init_class): (TypeBindings.create_ad_hoc_type_declaration.Helper): (TypeBindings.create_type_declaration_.EnumBinding.get_array_item_c_type_text): (TypeBindings.create_type_declaration_.EnumBinding.get_setter_value_expression_pattern): (TypeBindings.create_type_declaration_.EnumBinding): (TypeBindings.create_type_declaration_.EnumBinding.get_type_model): (TypeBindings.create_type_declaration_): (TypeBindings.create_type_declaration_.get_type_model): (TypeBindings.create_type_declaration_.get_array_item_c_type_text): (get_type_model): (AdHocTypeContextImpl.__init__): (PlainObjectBinding): (PlainObjectBinding.get_type_model): (AdHocTypeContext): (ArrayBinding.get_array_item_c_type_text): (ArrayBinding): (ArrayBinding.get_type_model): (RawTypeBinding.get_validator_call_text): (RawTypeBinding.reduce_to_raw_type): (RawTypeBinding): (RawTypeBinding.get_type_model): (MethodGenerateModes.StrictParameterMode.get_c_param_type_text): (MethodGenerateModes.RawParameterMode.get_c_param_type_text): (MethodGenerateModes.CombinedMode.get_c_param_type_text): (Generator.go): (Generator.process_event): (Generator.process_command): (Generator.resolve_type_and_generate_ad_hoc): (Generator.resolve_type_and_generate_ad_hoc.AdHocTypeContext): * inspector/InspectorDebuggerAgent.cpp: (WebCore::InspectorDebuggerAgent::didParseSource): 2012-02-21 Vsevolod Vlasov Web Inspector: [InspectorIndexedDB] Show IndexedDB views on selection IndexedDB elements in resources panel. https://bugs.webkit.org/show_bug.cgi?id=79098 Reviewed by Pavel Feldman. * English.lproj/localizedStrings.js: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/InspectorIndexedDBAgent.cpp: (WebCore): * inspector/compile-front-end.sh: * inspector/front-end/IndexedDBModel.js: (WebInspector.IndexedDBModel.prototype._assertFrameId): (WebInspector.IndexedDBModel.prototype.loadObjectStoreData): (WebInspector.IndexedDBModel.prototype.loadIndexData): * inspector/front-end/IndexedDBViews.js: Added. * inspector/front-end/ObjectPropertiesSection.js: (WebInspector.ObjectPropertiesSection): (WebInspector.ObjectPropertiesSection.prototype.updateProperties): * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype.showIndexedDB): (WebInspector.IndexedDBTreeElement.prototype.refreshIndexedDB): (WebInspector.IndexedDBTreeElement.prototype._indexedDBAdded): (WebInspector.IDBDatabaseTreeElement): (WebInspector.IDBDatabaseTreeElement.prototype.get itemURL): (WebInspector.IDBDatabaseTreeElement.prototype.update): (WebInspector.IDBDatabaseTreeElement.prototype.onselect): (WebInspector.IDBObjectStoreTreeElement): (WebInspector.IDBObjectStoreTreeElement.prototype.get itemURL): (WebInspector.IDBObjectStoreTreeElement.prototype.update): (WebInspector.IDBObjectStoreTreeElement.prototype.onselect): (WebInspector.IDBIndexTreeElement): (WebInspector.IDBIndexTreeElement.prototype.get itemURL): (WebInspector.IDBIndexTreeElement.prototype.update): (WebInspector.IDBIndexTreeElement.prototype.onselect): * inspector/front-end/WebKit.qrc: * inspector/front-end/externs.js: * inspector/front-end/indexedDBViews.css: Added. * inspector/front-end/inspector.html: 2012-02-22 Nikolas Zimmermann REGRESSION(58212): html foreignObjects with positions other than static not hidden correctly when parent has display:none https://bugs.webkit.org/show_bug.cgi?id=41386 Reviewed by Zoltan Herczeg. r58212 gave SVGGElements a renderer, regardless if "display: none" was set or not, for various reasons (see change set). The renderer for such cases is a RenderSVGHiddenContainer. We make sure in SVG that such subtrees are never used for painting & hittesting - they only exist for the purpose of SVG DOM (query getCTM, etc..) and to create renderers for child resources, like . This concept still works fine for: Foobar, as RenderSVGForeignObject::paint is never called thus we never paint the subtree of the . If the elements contains "position: relative" a new layer is created for the . When the document paints we have two seperated layers, and the layer doesn't know that it's actually inside a "SVG hidden subtree", and gets painted, where it shouldn't. HTML doesn't have this problems, as a display: none object, never creates a renderer. The fix is to disallow layer creation in hidden SVG subtrees, to mimic what would happen if we'd follow HTML rules to not create renderers for display: none objects. This avoids any indirections - as no layers are created anymore. Tests: svg/foreignObject/fO-display-none-with-relative-pos-content.svg svg/foreignObject/fO-display-none.svg svg/foreignObject/fO-parent-display-changes.svg svg/foreignObject/fO-parent-display-none-with-relative-pos-content.svg svg/foreignObject/fO-parent-display-none.svg svg/foreignObject/fO-parent-of-parent-display-none-with-relative-pos-content.svg svg/foreignObject/fO-parent-of-parent-display-none.svg * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::styleDidChange): Only create layers, if its allowed -- layerCreationAllowedForSubtree() will always return true for HTML, and only false for layers inside a hidden SVG subtree. * rendering/RenderObject.cpp: (WebCore::RenderObject::addChild): Only create layers, if its allowed. * rendering/RenderObject.h: Add inline layerCreationAllowedForSubtree() helper, that craws the tree to find a RenderSVGHiddenContainer ancestor, if not present, return true. 2012-02-22 Zoltan Herczeg Drop clipToImageBuffer from RenderBoxModelObject https://bugs.webkit.org/show_bug.cgi?id=79225 Reviewed by Nikolas Zimmermann. -webkit-background-clip: text is a rarely used non-standard feature uses clipToImageBuffer. It is replaced by CompositeDestinationIn on a transparent layer. The new approach has the same speed as the old one. Existing tests cover this issue. * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::paintFillLayerExtended): 2012-02-22 Kenneth Rohde Christiansen Merge setVisibleRectTrajectoryVector and adjustVisibleRect to the more descriptive coverWithTilesIfNeeded https://bugs.webkit.org/show_bug.cgi?id=79230 Reviewed by Simon Hausmann. Both setVisibleRectTrajectoryVector and the adjustVisibleRect are used for initiating re-tiling, so make that more obvious and merge the two. * platform/graphics/TiledBackingStore.cpp: (WebCore::TiledBackingStore::coverWithTilesIfNeeded): * platform/graphics/TiledBackingStore.h: (TiledBackingStore): 2012-02-17 Nikolas Zimmermann REGRESSION: unbalanced transparency layers for clipPath https://bugs.webkit.org/show_bug.cgi?id=78074 Reviewed by Zoltan Herczeg. If we're rendering to a mask image buffer, all children are rendered with opacity=1, regardless what their RenderStyles specify. SVGRenderSupport::finishRenderSVGContent() did not take this into account and always called endTransparencyLayer(). Fix that by checking if we're rendering to a mask image buffer, if so don't call endTransparencyLayer(). Add new reftest covering both the visual & logical correctness (no assertion). Tests: svg/clip-path/opacity-assertion-expected.svg svg/clip-path/opacity-assertion.svg * rendering/svg/SVGRenderSupport.cpp: (WebCore::isRenderingMaskImage): Extraced as sharable helper function. (WebCore::SVGRenderSupport::prepareToRenderSVGContent): Factor out isRenderingMaskImage() function. (WebCore::SVGRenderSupport::finishRenderSVGContent): Only call endTransparencyLayer(), if we actually called beginTL() first. 2012-02-22 Kenneth Rohde Christiansen Improve comments in tiling code. Rubberstamped by Simon Hausmann. * platform/graphics/TiledBackingStore.cpp: (WebCore::TiledBackingStore::createTiles): 2012-02-22 'Pavel Feldman' Not reviewed: build fix. * inspector/InspectorController.cpp: * inspector/InspectorController.h: (InspectorController): 2012-02-21 Pavel Feldman Web Inspector: do not filter out requestAnimationFrame from timeline, implement stop on animation events. https://bugs.webkit.org/show_bug.cgi?id=79116 Reviewed by Yury Semikhatsky. * English.lproj/localizedStrings.js: * dom/ScriptedAnimationController.cpp: (WebCore::ScriptedAnimationController::registerCallback): * inspector/InspectorInstrumentation.cpp: (WebCore): (WebCore::InspectorInstrumentation::didRequestAnimationFrameCallbackImpl): (WebCore::InspectorInstrumentation::didCancelAnimationFrameCallbackImpl): (WebCore::InspectorInstrumentation::willFireAnimationFrameEventImpl): * inspector/InspectorInstrumentation.h: (InspectorInstrumentation): (WebCore::InspectorInstrumentation::didRequestAnimationFrameCallback): * inspector/InspectorTimelineAgent.cpp: (TimelineRecordType): (WebCore::InspectorTimelineAgent::didRequestAnimationFrameCallback): (WebCore::InspectorTimelineAgent::didCancelAnimationFrameCallback): (WebCore::InspectorTimelineAgent::willFireAnimationFrameEvent): (WebCore::InspectorTimelineAgent::didFireAnimationFrameEvent): * inspector/InspectorTimelineAgent.h: (InspectorTimelineAgent): * inspector/front-end/BreakpointsSidebarPane.js: (WebInspector.EventListenerBreakpointsSidebarPane): (WebInspector.EventListenerBreakpointsSidebarPane.eventNameForUI): * inspector/front-end/TimelineAgent.js: * inspector/front-end/TimelinePanel.js: (WebInspector.TimelinePanel): (WebInspector.TimelinePanel.prototype.get _recordStyles): (WebInspector.TimelinePanel.prototype._findParentRecord): (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline): (WebInspector.TimelinePanel.prototype._onRecordsCleared): (WebInspector.TimelinePanel.FormattedRecord): (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent): (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails): 2012-02-22 Changhun Kang Remove unused class declaration in WebCore/page/scrolling/ScrollingCoordinator.h https://bugs.webkit.org/show_bug.cgi?id=79175 Reviewed by Kentaro Hara. * page/scrolling/ScrollingCoordinator.h: Remove PlatformGestureEvent class declaration. (WebCore): 2012-02-22 Andras Becsi [Qt][WK2] Fix the N9 build https://bugs.webkit.org/show_bug.cgi?id=79101 Reviewed by Simon Hausmann. Fixed the include order of the rolled out r108359 not to break the build with CONFIG+=force_static_libs_as_shared. * platform/graphics/OpenGLShims.h: Add missing include. 2012-02-22 Shinya Kawanaka firstRendererOf() should also return a fallback element renderer in NodeRenderingContext. https://bugs.webkit.org/show_bug.cgi?id=79180 Reviewed by Hajime Morita. Currently we have handled AttachingFallback in some special mannger, however if firstRendererOf and lastRendererOf return a fallback element renderer, we don't need to handle it in such a manner. We have introduced new attaching phase: AttachingFallbacked, and AttachingNotFallbacked. They are used for fallback elements. Added new test cases in: fast/dom/shadow/shadow-contents-fallback.html fast/dom/shadow/shadow-contents-fallback-dynamic.html * dom/NodeRenderingContext.cpp: (WebCore::NodeRenderingContext::NodeRenderingContext): (WebCore::firstRendererOf): (WebCore::lastRendererOf): (WebCore::NodeRenderingContext::nextRenderer): (WebCore::NodeRenderingContext::previousRenderer): (WebCore::NodeRenderingContext::shouldCreateRenderer): * dom/NodeRenderingContext.h: * html/shadow/InsertionPoint.h: (WebCore::isInsertionPoint): (WebCore): (WebCore::toInsertionPoint): 2012-02-22 Csaba Osztrogonác [Qt] Unreviewed gardening after r108464. * Target.pri: 2012-02-22 Sheriff Bot Unreviewed, rolling out r108468. http://trac.webkit.org/changeset/108468 https://bugs.webkit.org/show_bug.cgi?id=79219 Broke Chromium Win release build (Requested by bashi on #webkit). * CMakeLists.txt: * GNUmakefile.list.am: * Target.pri: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * websockets/WebSocket.cpp: (WebCore::WebSocket::didConnect): * websockets/WebSocketChannel.cpp: (WebCore::WebSocketChannel::connect): (WebCore::WebSocketChannel::fail): (WebCore::WebSocketChannel::processFrame): (WebCore::WebSocketChannel::sendFrame): * websockets/WebSocketChannel.h: * websockets/WebSocketDeflateFramer.cpp: Removed. * websockets/WebSocketDeflateFramer.h: Removed. 2012-02-20 Roland Steiner