Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(317)

Side by Side Diff: Source/core/page/scrolling/ScrollingCoordinator.cpp

Issue 18187004: Don't update graphics layer positions during coordinated scrolling (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Set define in core.gyp Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 bool isOpaqueScrollbar = !scrollbar->isOverlayScrollbar(); 260 bool isOpaqueScrollbar = !scrollbar->isOverlayScrollbar();
261 if (!scrollbarGraphicsLayer->contentsOpaque()) 261 if (!scrollbarGraphicsLayer->contentsOpaque())
262 scrollbarGraphicsLayer->setContentsOpaque(isMainFrame && isOpaqueScr ollbar); 262 scrollbarGraphicsLayer->setContentsOpaque(isMainFrame && isOpaqueScr ollbar);
263 scrollbarLayer->layer()->setOpaque(scrollbarGraphicsLayer->contentsOpaqu e()); 263 scrollbarLayer->layer()->setOpaque(scrollbarGraphicsLayer->contentsOpaqu e());
264 264
265 setupScrollbarLayer(scrollbarGraphicsLayer, scrollbarLayer, scrollingWeb LayerForScrollableArea(scrollableArea)); 265 setupScrollbarLayer(scrollbarGraphicsLayer, scrollbarLayer, scrollingWeb LayerForScrollableArea(scrollableArea));
266 } else 266 } else
267 removeWebScrollbarLayer(scrollableArea, orientation); 267 removeWebScrollbarLayer(scrollableArea, orientation);
268 } 268 }
269 269
270 void ScrollingCoordinator::scrollableAreaScrollLayerDidChange(ScrollableArea* sc rollableArea) 270 bool ScrollingCoordinator::scrollableAreaScrollLayerDidChange(ScrollableArea* sc rollableArea)
271 { 271 {
272 GraphicsLayer* scrollLayer = scrollLayerForScrollableArea(scrollableArea); 272 GraphicsLayer* scrollLayer = scrollLayerForScrollableArea(scrollableArea);
273 if (scrollLayer) { 273 if (scrollLayer) {
274 bool isMainFrame = isForMainFrame(scrollableArea); 274 bool isMainFrame = isForMainFrame(scrollableArea);
275 scrollLayer->setScrollableArea(scrollableArea, isMainFrame); 275 scrollLayer->setScrollableArea(scrollableArea, isMainFrame);
276 } 276 }
277 277
278 WebLayer* webLayer = scrollingWebLayerForScrollableArea(scrollableArea); 278 WebLayer* webLayer = scrollingWebLayerForScrollableArea(scrollableArea);
279 if (webLayer) { 279 if (webLayer) {
280 webLayer->setScrollable(true); 280 webLayer->setScrollable(true);
281 webLayer->setScrollPosition(IntPoint(scrollableArea->scrollPosition() - scrollableArea->minimumScrollPosition())); 281 webLayer->setScrollPosition(IntPoint(scrollableArea->scrollPosition() - scrollableArea->minimumScrollPosition()));
282 webLayer->setMaxScrollPosition(IntSize(scrollableArea->scrollSize(Horizo ntalScrollbar), scrollableArea->scrollSize(VerticalScrollbar))); 282 webLayer->setMaxScrollPosition(IntSize(scrollableArea->scrollSize(Horizo ntalScrollbar), scrollableArea->scrollSize(VerticalScrollbar)));
283 } 283 }
284 if (WebScrollbarLayer* scrollbarLayer = getWebScrollbarLayer(scrollableArea, HorizontalScrollbar)) 284 if (WebScrollbarLayer* scrollbarLayer = getWebScrollbarLayer(scrollableArea, HorizontalScrollbar))
285 setupScrollbarLayer(horizontalScrollbarLayerForScrollableArea(scrollable Area), scrollbarLayer, webLayer); 285 setupScrollbarLayer(horizontalScrollbarLayerForScrollableArea(scrollable Area), scrollbarLayer, webLayer);
286 if (WebScrollbarLayer* scrollbarLayer = getWebScrollbarLayer(scrollableArea, VerticalScrollbar)) 286 if (WebScrollbarLayer* scrollbarLayer = getWebScrollbarLayer(scrollableArea, VerticalScrollbar))
287 setupScrollbarLayer(verticalScrollbarLayerForScrollableArea(scrollableAr ea), scrollbarLayer, webLayer); 287 setupScrollbarLayer(verticalScrollbarLayerForScrollableArea(scrollableAr ea), scrollbarLayer, webLayer);
288
289 return !!webLayer;
288 } 290 }
289 291
290 void ScrollingCoordinator::setTouchEventTargetRects(const Vector<IntRect>& absol uteHitTestRects) 292 void ScrollingCoordinator::setTouchEventTargetRects(const Vector<IntRect>& absol uteHitTestRects)
291 { 293 {
292 if (WebLayer* scrollLayer = scrollingWebLayerForScrollableArea(m_page->mainF rame()->view())) { 294 if (WebLayer* scrollLayer = scrollingWebLayerForScrollableArea(m_page->mainF rame()->view())) {
293 WebVector<WebRect> webRects(absoluteHitTestRects.size()); 295 WebVector<WebRect> webRects(absoluteHitTestRects.size());
294 for (size_t i = 0; i < absoluteHitTestRects.size(); ++i) 296 for (size_t i = 0; i < absoluteHitTestRects.size(); ++i)
295 webRects[i] = absoluteHitTestRects[i]; 297 webRects[i] = absoluteHitTestRects[i];
296 scrollLayer->setTouchEventHandlerRegion(webRects); 298 scrollLayer->setTouchEventHandlerRegion(webRects);
297 } 299 }
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 stringBuilder.resize(stringBuilder.length() - 2); 641 stringBuilder.resize(stringBuilder.length() - 2);
640 return stringBuilder.toString(); 642 return stringBuilder.toString();
641 } 643 }
642 644
643 String ScrollingCoordinator::mainThreadScrollingReasonsAsText() const 645 String ScrollingCoordinator::mainThreadScrollingReasonsAsText() const
644 { 646 {
645 return mainThreadScrollingReasonsAsText(mainThreadScrollingReasons()); 647 return mainThreadScrollingReasonsAsText(mainThreadScrollingReasons());
646 } 648 }
647 649
648 } // namespace WebCore 650 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/page/scrolling/ScrollingCoordinator.h ('k') | Source/core/rendering/RenderLayerBacking.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698