https://bugs.webkit.org/show_bug.cgi?id=79165
Reviewed by Adam Barth.
Source/WebCore:
As the title says.
* page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
(WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
(WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
(WebCore::ScrollingCoordinator::setScrollLayer):
(WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
(WebCore::ScrollingCoordinator::setScrollParameters):
(WebCore::ScrollingCoordinator::setWheelEventHandlerCount):
(WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
Remove ASSERT_NOT_REACHED()ed from these functions, they are now expected to be called but do nothing.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
Guard a mac-specific piece of code in #if PLATFORM(MAC). This code already has a FIXME.
* rendering/RenderLayerCompositor.cpp:
(WebCore::shouldCompositeOverflowControls):
Make coordinatesScroll..() sufficient but not necessary for compositing overflow controls. In chromium, we
want to composite overflow controls even for FrameViews that we aren't coordinating via the
ScrollingCoordinator.
Source/WebKit/chromium:
* src/NonCompositedContentHost.cpp:
(WebKit::NonCompositedContentHost::setViewport):
Whenever the ScrollingCoordinator is enabled the scroll layer's position is expected to be updated
externally to RenderLayerCompositor, so set it here.
* src/WebSettingsImpl.cpp:
(WebKit::WebSettingsImpl::setAcceleratedCompositingEnabled):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@108422
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2012-02-21 James Robinson <jamesr@chromium.org>
+
+ Enable ScrollingCoordinator in chromium whenever compositing is enabled
+ https://bugs.webkit.org/show_bug.cgi?id=79165
+
+ Reviewed by Adam Barth.
+
+ As the title says.
+
+ * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
+ (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
+ (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
+ (WebCore::ScrollingCoordinator::setScrollLayer):
+ (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
+ (WebCore::ScrollingCoordinator::setScrollParameters):
+ (WebCore::ScrollingCoordinator::setWheelEventHandlerCount):
+ (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
+ Remove ASSERT_NOT_REACHED()ed from these functions, they are now expected to be called but do nothing.
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::RenderLayerBacking):
+ Guard a mac-specific piece of code in #if PLATFORM(MAC). This code already has a FIXME.
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::shouldCompositeOverflowControls):
+ Make coordinatesScroll..() sufficient but not necessary for compositing overflow controls. In chromium, we
+ want to composite overflow controls even for FrameViews that we aren't coordinating via the
+ ScrollingCoordinator.
+
2012-02-21 Adam Klein <adamk@chromium.org>
Setting innerText causes DOMSubtreeModified to be dispatched too early
void ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange(FrameView*, GraphicsLayer* horizontalScrollbarLayer)
{
- ASSERT_NOT_REACHED();
// FIXME: Implement!
}
void ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange(FrameView*, GraphicsLayer* verticalScrollbarLayer)
{
- ASSERT_NOT_REACHED();
// FIXME: Implement!
}
void ScrollingCoordinator::setScrollLayer(GraphicsLayer* scrollLayer)
{
- ASSERT_NOT_REACHED();
// FIXME: Implement!
}
void ScrollingCoordinator::setNonFastScrollableRegion(const Region&)
{
- ASSERT_NOT_REACHED();
// FIXME: Implement!
}
bool hasEnabledHorizontalScrollbar, bool hasEnabledVerticalScrollbar,
const IntRect& viewportRect, const IntSize& contentsSize)
{
- ASSERT_NOT_REACHED();
// FIXME: Implement!
}
void ScrollingCoordinator::setWheelEventHandlerCount(unsigned)
{
- ASSERT_NOT_REACHED();
// FIXME: Implement!
}
void ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread(bool)
{
- ASSERT_NOT_REACHED();
// FIXME: Implement!
}
if (page && frame && page->mainFrame() == frame) {
m_isMainFrameRenderViewLayer = true;
+#if PLATFORM(MAC)
// FIXME: It's a little weird that we base this decision on whether there's a scrolling coordinator or not.
if (page->scrollingCoordinator())
m_usingTiledCacheLayer = true;
+#endif
}
}
if (Page* page = view->frame()->page()) {
if (ScrollingCoordinator* scrollingCoordinator = page->scrollingCoordinator())
- return scrollingCoordinator->coordinatesScrollingForFrameView(view);
+ if (scrollingCoordinator->coordinatesScrollingForFrameView(view))
+ return true;
}
#if !PLATFORM(CHROMIUM)
+2012-02-21 James Robinson <jamesr@chromium.org>
+
+ Enable ScrollingCoordinator in chromium whenever compositing is enabled
+ https://bugs.webkit.org/show_bug.cgi?id=79165
+
+ Reviewed by Adam Barth.
+
+ * src/NonCompositedContentHost.cpp:
+ (WebKit::NonCompositedContentHost::setViewport):
+ Whenever the ScrollingCoordinator is enabled the scroll layer's position is expected to be updated
+ externally to RenderLayerCompositor, so set it here.
+ * src/WebSettingsImpl.cpp:
+ (WebKit::WebSettingsImpl::setAcceleratedCompositingEnabled):
+
2012-02-21 Daniel Cheng <dcheng@chromium.org>
[chromium] Fix image drag out on Chromium
#include "NonCompositedContentHost.h"
+#include "FloatPoint.h"
#include "FloatRect.h"
#include "GraphicsLayer.h"
#include "LayerChromium.h"
m_viewportSize = viewportSize;
scrollLayer()->setScrollPosition(scrollPosition);
+ scrollLayer()->setPosition(-scrollPosition);
// Due to the possibility of pinch zoom, the noncomposited layer is always
// assumed to be scrollable.
scrollLayer()->setScrollable(true);
void WebSettingsImpl::setAcceleratedCompositingEnabled(bool enabled)
{
m_settings->setAcceleratedCompositingEnabled(enabled);
+ m_settings->setScrollingCoordinatorEnabled(enabled);
}
void WebSettingsImpl::setForceCompositingMode(bool enabled)