Index: Source/WebCore/ChangeLog |
=================================================================== |
--- Source/WebCore/ChangeLog (revision 93076) |
+++ Source/WebCore/ChangeLog (working copy) |
@@ -1,20 +1,439 @@ |
-2011-08-12 Denis Lagno <dilmah@chromium.org> |
+2011-08-11 John Bauman <jbauman@chromium.org> |
- Need a way to selectively use hixie-76 for websocket connections depending on destination and/or origin |
- https://bugs.webkit.org/show_bug.cgi?id=65835 |
+ Readback composited webgl results for printing |
+ https://bugs.webkit.org/show_bug.cgi?id=65658 |
- Reviewed by Alexey Proskuryakov and Yuta Kitamura. |
+ Reviewed by James Robinson. |
- No new tests. (because it is temporary solution for transient period between hixie-76 and hybi-NN). |
+ The real composited results may be locked inside the compositor |
+ context's version of a texture because the drawing buffer was |
+ automatically cleared, so read from there to get the actual presented |
+ version to draw. |
- * page/Settings.cpp: |
- (WebCore::Settings::addHixie76WebSocketProtocolException): |
- (WebCore::Settings::useHixie76WebSocketProtocol): |
- * page/Settings.h: |
- (WebCore::Settings::setUseHixie76WebSocketProtocol): |
- * websockets/WebSocketChannel.cpp: |
- (WebCore::WebSocketChannel::WebSocketChannel): |
+ * html/canvas/WebGLRenderingContext.cpp: |
+ (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas): |
+ * platform/graphics/GraphicsContext3D.h: |
+ * platform/graphics/chromium/Extensions3DChromium.h: |
+ * platform/graphics/chromium/WebGLLayerChromium.cpp: |
+ (WebCore::WebGLLayerChromium::paintRenderedResultsToCanvas): |
+ * platform/graphics/chromium/WebGLLayerChromium.h: |
+ * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp: |
+ (WebCore::GraphicsContext3D::paintCompositedResultsToCanvas): |
+2011-08-11 Andrew Wason <rectalogic@rectalogic.com> |
+ |
+ REGRESSION: Qt JavaScript bridge signal connection fails |
+ https://bugs.webkit.org/show_bug.cgi?id=66097 |
+ |
+ Reviewed by Gavin Barraclough. |
+ |
+ Tests in WebKit/qt/tests/qwebframe |
+ |
+ Call toThisObject() on exec->lexicalGlobalObject() so the correct |
+ object is passed to the JS signal handler. |
+ |
+ * bridge/qt/qt_runtime.cpp: |
+ (JSC::Bindings::QtRuntimeConnectionMethod::call): |
+ |
+2011-08-11 Nico Weber <thakis@chromium.org> |
+ |
+ Remove incorrect comment about m_wheelEventHandlerCount |
+ https://bugs.webkit.org/show_bug.cgi?id=66117 |
+ |
+ Reviewed by Simon Fraser. |
+ |
+ From what I can tell, this number is changed only in |
+ Frame::notifyChromeClientWheelEventHandlerCountChanged(), |
+ and there it just reads the number modified in |
+ Document::didAdd/RemoveWheelEventHandler(). So this is just the number |
+ of event handlers (and not related to horizontal scrollbars), and the |
+ variable name expresses that already. |
+ |
+ * dom/Document.h: |
+ |
+2011-08-11 James Robinson <jamesr@chromium.org> |
+ |
+ [chromium] Defer managed texture creation and destruction until updateCompositorResources |
+ https://bugs.webkit.org/show_bug.cgi?id=64772 |
+ |
+ Reviewed by Kenneth Russell. |
+ |
+ This adds support for deferring GraphicsContext3D calls for texture creation and destruction for managed |
+ textures and defers these calls until updateCompositorResources() for contents textures. The primary benefit of |
+ this change is that it decouples managing the texture budget for the next frame (which has to happen before |
+ painting layer contents) from the actual GL calls that create/destroy textures. That way, in the threaded |
+ compositing world we can continue to use textures from the previous frame while software painting contents for |
+ the next frame into software buffers or SkPictures. |
+ |
+ Also renames LayerTexture to ManagedTexture to better reflect what it is. Not all ManagedTextures we create are |
+ necessarily associated with layers, but they are all managed by a TextureManager. |
+ |
+ Covered by compositing/ layout tests. |
+ |
+ * WebCore.gypi: |
+ * platform/graphics/chromium/ContentLayerChromium.h: |
+ * platform/graphics/chromium/ImageLayerChromium.cpp: |
+ (WebCore::ImageLayerTextureUpdater::updateTextureRect): |
+ * platform/graphics/chromium/LayerRendererChromium.cpp: |
+ (WebCore::LayerRendererChromium::releaseTextures): |
+ (WebCore::LayerRendererChromium::drawLayers): |
+ (WebCore::LayerRendererChromium::updateLayers): |
+ (WebCore::LayerRendererChromium::getOffscreenLayerTexture): |
+ (WebCore::LayerRendererChromium::useRenderSurface): |
+ (WebCore::LayerRendererChromium::initializeSharedObjects): |
+ * platform/graphics/chromium/LayerRendererChromium.h: |
+ * platform/graphics/chromium/LayerTextureUpdater.h: |
+ * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp: |
+ (WebCore::LayerTextureUpdaterBitmap::updateTextureRect): |
+ (WebCore::LayerTextureUpdaterSkPicture::updateTextureRect): |
+ * platform/graphics/chromium/LayerTextureUpdaterCanvas.h: |
+ * platform/graphics/chromium/LayerTilerChromium.cpp: |
+ (WebCore::LayerTilerChromium::getSingleTexture): |
+ (WebCore::LayerTilerChromium::createTile): |
+ (WebCore::LayerTilerChromium::updateRect): |
+ (WebCore::LayerTilerChromium::drawTiles): |
+ * platform/graphics/chromium/LayerTilerChromium.h: |
+ (WebCore::LayerTilerChromium::Tile::Tile): |
+ (WebCore::LayerTilerChromium::Tile::texture): |
+ * platform/graphics/chromium/ManagedTexture.cpp: Renamed from Source/WebCore/platform/graphics/chromium/LayerTexture.cpp. |
+ (WebCore::ManagedTexture::ManagedTexture): |
+ (WebCore::ManagedTexture::~ManagedTexture): |
+ (WebCore::ManagedTexture::isValid): |
+ (WebCore::ManagedTexture::reserve): |
+ (WebCore::ManagedTexture::unreserve): |
+ (WebCore::ManagedTexture::bindTexture): |
+ (WebCore::ManagedTexture::framebufferTexture2D): |
+ * platform/graphics/chromium/ManagedTexture.h: Renamed from Source/WebCore/platform/graphics/chromium/LayerTexture.h. |
+ (WebCore::ManagedTexture::create): |
+ (WebCore::ManagedTexture::format): |
+ (WebCore::ManagedTexture::isReserved): |
+ * platform/graphics/chromium/RenderSurfaceChromium.h: |
+ * platform/graphics/chromium/TextureManager.cpp: |
+ (WebCore::TextureManager::TextureManager): |
+ (WebCore::TextureManager::deleteEvictedTextures): |
+ (WebCore::TextureManager::removeTexture): |
+ (WebCore::TextureManager::allocateTexture): |
+ (WebCore::TextureManager::requestTexture): |
+ * platform/graphics/chromium/TextureManager.h: |
+ (WebCore::TextureManager::create): |
+ (WebCore::TextureManager::setAssociatedContextDebugOnly): |
+ (WebCore::TextureManager::associatedContextDebugOnly): |
+ * platform/graphics/chromium/TiledLayerChromium.h: |
+ * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp: |
+ (WebCore::CCHeadsUpDisplay::draw): |
+ * platform/graphics/chromium/cc/CCHeadsUpDisplay.h: |
+ * platform/graphics/chromium/cc/CCRenderSurface.cpp: |
+ (WebCore::CCRenderSurface::prepareContentsTexture): |
+ (WebCore::CCRenderSurface::drawSurface): |
+ * platform/graphics/chromium/cc/CCRenderSurface.h: |
+ (WebCore::CCRenderSurface::contentsTexture): |
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp: |
+ (WebCore::CCTiledLayerImpl::bindContentsTexture): |
+ |
+2011-08-11 David Kilzer <ddkilzer@apple.com> |
+ |
+ <http://webkit.org/b/66113> [CFNetwork] willCacheResponse() leaks CFCachedURLResponseRef if delegate changes CacheStoragePolicy |
+ |
+ Reviewed by Joseph Pecoraro. |
+ |
+ This first appeared in ToT WebKit r23462 (Windows merge). |
+ |
+ * platform/network/cf/ResourceHandleCFNet.cpp: |
+ (WebCore::willCacheResponse): Only retain cachedResponse if we |
+ are returning the same object passed into the method, otherwise |
+ we end up double-retaining the new object created. |
+ |
+2011-08-05 Nat Duca <nduca@chromium.org> |
+ |
+ [chromium] Make WebViewImpl point at CCLayerTreeHost and related separation |
+ https://bugs.webkit.org/show_bug.cgi?id=65791 |
+ |
+ With this patch, LayerRendererChromium becomes increasingly responsible |
+ for rendering, while render scheduling and tree hosting moves into the |
+ CCLayerTreeHost. |
+ |
+ Reviewed by James Robinson. |
+ |
+ * platform/graphics/chromium/ContentLayerChromium.cpp: |
+ (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded): |
+ * platform/graphics/chromium/LayerChromium.h: |
+ * platform/graphics/chromium/LayerRendererChromium.cpp: |
+ (WebCore::LayerRendererChromium::create): |
+ (WebCore::LayerRendererChromium::LayerRendererChromium): |
+ (WebCore::LayerRendererChromium::initialize): |
+ (WebCore::LayerRendererChromium::releaseTextures): |
+ (WebCore::LayerRendererChromium::updateRootLayerContents): |
+ (WebCore::LayerRendererChromium::drawRootLayer): |
+ (WebCore::LayerRendererChromium::invalidateRootLayerRect): |
+ (WebCore::LayerRendererChromium::rootLayerChanged): |
+ (WebCore::LayerRendererChromium::viewportChanged): |
+ (WebCore::LayerRendererChromium::updateLayers): |
+ (WebCore::LayerRendererChromium::drawLayers): |
+ (WebCore::LayerRendererChromium::drawLayersInternal): |
+ (WebCore::LayerRendererChromium::getFramebufferPixels): |
+ (WebCore::LayerRendererChromium::getOffscreenLayerTexture): |
+ (WebCore::LayerRendererChromium::copyOffscreenTextureToDisplay): |
+ (WebCore::LayerRendererChromium::useRenderSurface): |
+ (WebCore::LayerRendererChromium::setScissorToRect): |
+ (WebCore::LayerRendererChromium::layerTreeAsText): |
+ (WebCore::LayerRendererChromium::dumpRenderSurfaces): |
+ * platform/graphics/chromium/LayerRendererChromium.h: |
+ (WebCore::LayerRendererChromium::settings): |
+ (WebCore::LayerRendererChromium::owner): |
+ (WebCore::LayerRendererChromium::rootLayer): |
+ (WebCore::LayerRendererChromium::skiaContext): |
+ * platform/graphics/chromium/WebGLLayerChromium.cpp: |
+ (WebCore::WebGLLayerChromium::setTextureUpdated): |
+ * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp: |
+ (WebCore::CCHeadsUpDisplay::draw): |
+ (WebCore::CCHeadsUpDisplay::enabled): |
+ * platform/graphics/chromium/cc/CCHeadsUpDisplay.h: |
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: |
+ (WebCore::CCLayerTreeHost::create): |
+ (WebCore::CCLayerTreeHost::CCLayerTreeHost): |
+ (WebCore::CCLayerTreeHost::initialize): |
+ (WebCore::CCLayerTreeHost::animateAndLayout): |
+ (WebCore::CCLayerTreeHost::createLayerTreeHostCommitter): |
+ (WebCore::CCLayerTreeHost::createLayerTreeHostImpl): |
+ (WebCore::CCLayerTreeHost::context): |
+ (WebCore::CCLayerTreeHost::compositeAndReadback): |
+ (WebCore::CCLayerTreeHost::createRootLayerPainter): |
+ (WebCore::CCLayerTreeHost::finishAllRendering): |
+ (WebCore::CCLayerTreeHost::invalidateRootLayerRect): |
+ (WebCore::CCLayerTreeHost::setNeedsCommitAndRedraw): |
+ (WebCore::CCLayerTreeHost::setNeedsRedraw): |
+ (WebCore::CCLayerTreeHost::setRootLayer): |
+ (WebCore::CCLayerTreeHost::setViewport): |
+ (WebCore::CCLayerTreeHost::setVisible): |
+ (WebCore::CCLayerTreeHost::doComposite): |
+ (WebCore::CCLayerTreeHost::composite): |
+ (WebCore::CCLayerTreeHost::reallocateRenderer): |
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h: |
+ (WebCore::CCLayerTreeHost::animating): |
+ (WebCore::CCLayerTreeHost::setAnimating): |
+ (WebCore::CCLayerTreeHost::rootLayer): |
+ (WebCore::CCLayerTreeHost::settings): |
+ (WebCore::CCLayerTreeHost::viewportContentRect): |
+ (WebCore::CCLayerTreeHost::viewportScrollPosition): |
+ (WebCore::CCLayerTreeHost::viewportVisibleRect): |
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: |
+ (WebCore::CCLayerTreeHostImpl::create): |
+ (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl): |
+ (WebCore::CCLayerTreeHostImpl::drawLayers): |
+ (WebCore::CCLayerTreeHostImpl::drawLayersOnMainThread): |
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: |
+ * platform/graphics/chromium/cc/CCLayerTreeHostImplProxy.cpp: |
+ (WebCore::CCLayerTreeHostImplProxy::initImplOnCCThread): |
+ |
+2011-08-11 Jeff Miller <jeffm@apple.com> |
+ |
+ WebCore::AVFWrapper fails to remove observer for kCACFContextNeedsFlushNotification |
+ https://bugs.webkit.org/show_bug.cgi?id=66116 |
+ |
+ We need to pass 0 as the object parameter to CFNotificationCenterRemoveObserver() when removing |
+ kCACFContextNeedsFlushNotification to match what we do when we registered for the same |
+ notification with CFNotificationCenterAddObserver(). |
+ |
+ Reviewed by John Sullivan. |
+ |
+ No new tests, uses existing media tests. |
+ |
+ * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationCF.cpp: |
+ (WebCore::AVFWrapper::disconnectAndDeleteAVFWrapper): Pass 0 as the object parameter to CFNotificationCenterRemoveObserver(). |
+ (WebCore::AVFWrapper::notificationCallback): Remove obsolete FIXME comment. |
+ |
+2011-08-11 Ryosuke Niwa <rniwa@webkit.org> |
+ |
+ Share code between isStyleSpanOrSpanWithOnlyStyleAttribute, isUnstyledStyleSpan, |
+ isSpanWithoutAttributesOrUnstyleStyleSpan and replaceWithSpanOrRemoveIfWithoutAttributes |
+ https://bugs.webkit.org/show_bug.cgi?id=66091 |
+ |
+ Reviewed by Tony Chang. |
+ |
+ Extracted common code as hasNoAttributeOrOnlyStyleAttribute. The only behavioral difference is that |
+ replaceWithSpanOrRemoveIfWithoutAttributes will now remove elements with class="Apple-style-span", |
+ for which I'm adding a test. |
+ |
+ Test: editing/style/remove-styled-element-with-style-span.html |
+ |
+ * editing/ApplyStyleCommand.cpp: |
+ (WebCore::hasNoAttributeOrOnlyStyleAttribute): |
+ (WebCore::isStyleSpanOrSpanWithOnlyStyleAttribute): |
+ (WebCore::isUnstyledStyleSpan): |
+ (WebCore::isSpanWithoutAttributesOrUnstyleStyleSpan): |
+ (WebCore::ApplyStyleCommand::replaceWithSpanOrRemoveIfWithoutAttributes): |
+ |
+2011-08-11 Tom Zakrajsek <tomz@codeaurora.org> |
+ |
+ Add HTMLUnknownElement interface as defined in |
+ http://www.w3.org/TR/html5/elements.html#elements-in-the-dom. |
+ https://bugs.webkit.org/show_bug.cgi?id=41841 |
+ |
+ Reviewed by Adam Barth. |
+ |
+ Test: fast/html/unknown-tag.html |
+ |
+ * CMakeLists.txt: |
+ * CodeGenerators.pri: |
+ * DerivedSources.cpp: |
+ * DerivedSources.make: |
+ * GNUmakefile.list.am: |
+ * WebCore.gypi: |
+ * WebCore.vcproj/WebCore.vcproj: |
+ * WebCore.xcodeproj/project.pbxproj: |
+ * bindings/scripts/CodeGeneratorV8.pm: |
+ (IsDOMNodeType): |
+ * dom/make_names.pl: |
+ (defaultParametersHash): |
+ (buildConstructorMap): |
+ (printJSElementIncludes): |
+ (printElementIncludes): |
+ (printWrapperFunctions): |
+ (printWrapperFactoryCppFile): |
+ * html/HTMLTagNames.in: |
+ * html/HTMLUnknownElement.h: Added. |
+ (WebCore::HTMLUnknownElement::create): |
+ (WebCore::HTMLUnknownElement::HTMLUnknownElement): |
+ * html/HTMLUnknownElement.idl: Added. |
+ * mathml/mathtags.in: |
+ * page/DOMWindow.idl: |
+ * svg/svgtags.in: |
+ |
+2011-08-11 Levi Weintraub <leviw@chromium.org> |
+ |
+ Remove dead code: borderInnerRect |
+ https://bugs.webkit.org/show_bug.cgi?id=66087 |
+ |
+ Reviewed by Adam Barth. |
+ |
+ Removing an old and currently unused function: RenderObject::borderInnerRect. |
+ |
+ No new tests since I'm just pruning dead code. |
+ |
+ * rendering/RenderObject.cpp: |
+ * rendering/RenderObject.h: |
+ |
+2011-08-11 Simon Fraser <simon.fraser@apple.com> |
+ |
+ Avoid adding the visible wash layer twice |
+ https://bugs.webkit.org/show_bug.cgi?id=66098 |
+ |
+ Reviewed by Chris Marrin. |
+ |
+ Fix two issues; only create a m_visibleTileWashLayer if we don't have one |
+ already, and avoid adding multiple m_visibleTileWashLayers to the sublayers |
+ array when flipping between tiled and non-tiled. |
+ |
+ * platform/graphics/ca/GraphicsLayerCA.cpp: |
+ (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): |
+ |
+2011-08-11 Benjamin Poulain <benjamin@webkit.org> |
+ |
+ The PageSerializer should always use absolute URL |
+ https://bugs.webkit.org/show_bug.cgi?id=66006 |
+ |
+ Reviewed by Adam Barth. |
+ |
+ Page serializer resolves every URL for storing the resources. |
+ The MarkupAccumulator used there should use the same rules in order to |
+ create a valid file. |
+ |
+ No new tests because the test infrastructure for this |
+ does not exist with layout tests and the Chromium unit test for |
+ the serializer are disabled. |
+ |
+ * page/PageSerializer.cpp: |
+ (WebCore::SerializerMarkupAccumulator::SerializerMarkupAccumulator): |
+ |
+2011-08-01 Adrienne Walker <enne@google.com> |
+ |
+ Enable fast path scrolling for composited iframes |
+ https://bugs.webkit.org/show_bug.cgi?id=65056 |
+ |
+ Reviewed by James Robinson. |
+ |
+ iframes with composited layers for content should be able to do fast |
+ path scrolling because they draw into their own backing. To enable |
+ this, useSlowRepaints is modified to return true only for the cases |
+ that apply to composited layers. The fast path scrolling function is |
+ modified to send the invalidation to the backing itself rather than to |
+ the window. |
+ |
+ Renamed a number of "slow repaint" functions to be the more accurate |
+ "cannot blit to window" as it will not always force slow path |
+ scrolling. |
+ |
+ * page/FrameView.cpp: |
+ (WebCore::FrameView::reset): |
+ (WebCore::FrameView::useSlowRepaints): |
+ (WebCore::FrameView::useSlowRepaintsIfNotOverlapped): |
+ (WebCore::FrameView::contentsInCompositedLayer): |
+ (WebCore::FrameView::setCannotBlitToWindow): |
+ (WebCore::FrameView::scrollContentsFastPath): |
+ (WebCore::FrameView::scrollContentsSlowPath): |
+ * page/FrameView.h: |
+ * rendering/RenderLayer.cpp: |
+ (WebCore::RenderLayer::cannotBlitToWindow): |
+ * rendering/RenderLayer.h: |
+ * rendering/RenderView.cpp: |
+ (WebCore::RenderView::paintBoxDecorations): |
+ |
+2011-08-10 Adrienne Walker <enne@google.com> |
+ |
+ Support creating compositing layers for scrollable frames and iframes |
+ https://bugs.webkit.org/show_bug.cgi?id=55257 |
+ |
+ Reviewed by James Robinson. |
+ |
+ When force compositing mode is turned on, iframes with overflow will |
+ become composited (in order to enable faster scrolling). |
+ |
+ This patch was originally by Daniel Sievers <sievers@chromium.org>. |
+ |
+ Tests: platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html |
+ platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html |
+ platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html |
+ platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html |
+ platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html |
+ |
+ * rendering/RenderLayerCompositor.cpp: |
+ (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags): |
+ (WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame): |
+ * rendering/RenderLayerCompositor.h: |
+ |
+2011-08-11 Yong Li <yoli@rim.com> |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=65944 |
+ Replace QuotesData::operator==() with QuotesData::equal(const QuotesData* |
+ , const QuotesData*) because QuotesData::operator==() were using non-standard |
+ C++ code that is not supported by all compilers. |
+ |
+ Reviewed by Alexey Proskuryakov. |
+ |
+ No new tests because some existing test cases can show the issue, |
+ for example, fast/css/content/content-quotes-01.html. |
+ |
+ * rendering/RenderQuote.cpp: |
+ (WebCore::RenderQuote::styleDidChange): |
+ * rendering/style/QuotesData.cpp: |
+ (WebCore::QuotesData::equal): |
+ * rendering/style/QuotesData.h: |
+ * rendering/style/RenderStyle.cpp: |
+ (WebCore::RenderStyle::setQuotes): |
+ * rendering/style/StyleRareInheritedData.cpp: |
+ (WebCore::StyleRareInheritedData::operator==): |
+ |
+2011-08-11 David Hyatt <hyatt@apple.com> |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=66075 |
+ |
+ Turn on regions and exclusions by default. Fix one stray ifdef that I missed. |
+ |
+ Reviewed by James Robinson. |
+ |
+ * css/CSSComputedStyleDeclaration.cpp: |
+ (WebCore::contentToCSSValue): |
+ |
2011-08-11 David Reveman <reveman@chromium.org> |
[Chromium] Temporarily disable layer anti-aliasing on ChromeOS. |