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

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

Issue 138643003: Simpler return value of HashTable::add/HashMap:add and others (Closed)
Patch Set: Daily master update (now with base url?) Created 6 years, 10 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
« no previous file with comments | « Source/core/page/TouchDisambiguation.cpp ('k') | Source/core/rendering/FastTextAutosizer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 } 278 }
279 scrollbarLayer->setScrollLayer(scrollLayer); 279 scrollbarLayer->setScrollLayer(scrollLayer);
280 scrollbarLayer->setClipLayer(containerLayer); 280 scrollbarLayer->setClipLayer(containerLayer);
281 scrollbarGraphicsLayer->setContentsToPlatformLayer(scrollbarLayer->layer()); 281 scrollbarGraphicsLayer->setContentsToPlatformLayer(scrollbarLayer->layer());
282 scrollbarGraphicsLayer->setDrawsContent(false); 282 scrollbarGraphicsLayer->setDrawsContent(false);
283 } 283 }
284 284
285 WebScrollbarLayer* ScrollingCoordinator::addWebScrollbarLayer(ScrollableArea* sc rollableArea, ScrollbarOrientation orientation, PassOwnPtr<blink::WebScrollbarLa yer> scrollbarLayer) 285 WebScrollbarLayer* ScrollingCoordinator::addWebScrollbarLayer(ScrollableArea* sc rollableArea, ScrollbarOrientation orientation, PassOwnPtr<blink::WebScrollbarLa yer> scrollbarLayer)
286 { 286 {
287 ScrollbarMap& scrollbars = orientation == HorizontalScrollbar ? m_horizontal Scrollbars : m_verticalScrollbars; 287 ScrollbarMap& scrollbars = orientation == HorizontalScrollbar ? m_horizontal Scrollbars : m_verticalScrollbars;
288 return scrollbars.add(scrollableArea, scrollbarLayer).iterator->value.get(); 288 return scrollbars.add(scrollableArea, scrollbarLayer).storedValue->value.get ();
289 } 289 }
290 290
291 WebScrollbarLayer* ScrollingCoordinator::getWebScrollbarLayer(ScrollableArea* sc rollableArea, ScrollbarOrientation orientation) 291 WebScrollbarLayer* ScrollingCoordinator::getWebScrollbarLayer(ScrollableArea* sc rollableArea, ScrollbarOrientation orientation)
292 { 292 {
293 ScrollbarMap& scrollbars = orientation == HorizontalScrollbar ? m_horizontal Scrollbars : m_verticalScrollbars; 293 ScrollbarMap& scrollbars = orientation == HorizontalScrollbar ? m_horizontal Scrollbars : m_verticalScrollbars;
294 return scrollbars.get(scrollableArea); 294 return scrollbars.get(scrollableArea);
295 } 295 }
296 296
297 void ScrollingCoordinator::scrollableAreaScrollbarLayerDidChange(ScrollableArea* scrollableArea, ScrollbarOrientation orientation) 297 void ScrollingCoordinator::scrollableAreaScrollbarLayerDidChange(ScrollableArea* scrollableArea, ScrollbarOrientation orientation)
298 { 298 {
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 // Whenever we descend into a new frame, a new map will be created. 388 // Whenever we descend into a new frame, a new map will be created.
389 typedef HashMap<const RenderLayer*, Vector<const Frame*> > LayerFrameMap; 389 typedef HashMap<const RenderLayer*, Vector<const Frame*> > LayerFrameMap;
390 static void makeLayerChildFrameMap(const Frame* currentFrame, LayerFrameMap* map ) 390 static void makeLayerChildFrameMap(const Frame* currentFrame, LayerFrameMap* map )
391 { 391 {
392 map->clear(); 392 map->clear();
393 const FrameTree& tree = currentFrame->tree(); 393 const FrameTree& tree = currentFrame->tree();
394 for (const Frame* child = tree.firstChild(); child; child = child->tree().ne xtSibling()) { 394 for (const Frame* child = tree.firstChild(); child; child = child->tree().ne xtSibling()) {
395 const RenderLayer* containingLayer = child->ownerRenderer()->enclosingLa yer(); 395 const RenderLayer* containingLayer = child->ownerRenderer()->enclosingLa yer();
396 LayerFrameMap::iterator iter = map->find(containingLayer); 396 LayerFrameMap::iterator iter = map->find(containingLayer);
397 if (iter == map->end()) 397 if (iter == map->end())
398 iter = map->add(containingLayer, Vector<const Frame*>()).iterator; 398 map->add(containingLayer, Vector<const Frame*>()).storedValue->value .append(child);
399 iter->value.append(child); 399 else
400 iter->value.append(child);
400 } 401 }
401 } 402 }
402 403
403 static void convertLayerRectsToEnclosingCompositedLayerRecursive( 404 static void convertLayerRectsToEnclosingCompositedLayerRecursive(
404 const RenderLayer* curLayer, 405 const RenderLayer* curLayer,
405 const LayerHitTestRects& layerRects, 406 const LayerHitTestRects& layerRects,
406 LayerHitTestRects& compositorRects, 407 LayerHitTestRects& compositorRects,
407 RenderGeometryMap& geometryMap, 408 RenderGeometryMap& geometryMap,
408 HashSet<const RenderLayer*>& layersWithRects, 409 HashSet<const RenderLayer*>& layersWithRects,
409 LayerFrameMap& layerChildFrameMap) 410 LayerFrameMap& layerChildFrameMap)
(...skipping 13 matching lines...) Expand all
423 } 424 }
424 } 425 }
425 if (!compositedLayer) { 426 if (!compositedLayer) {
426 // Since this machinery is used only when accelerated compositing is enabled, we expect 427 // Since this machinery is used only when accelerated compositing is enabled, we expect
427 // that every layer should have an enclosing composited layer. 428 // that every layer should have an enclosing composited layer.
428 ASSERT_NOT_REACHED(); 429 ASSERT_NOT_REACHED();
429 return; 430 return;
430 } 431 }
431 432
432 LayerHitTestRects::iterator compIter = compositorRects.find(compositedLa yer); 433 LayerHitTestRects::iterator compIter = compositorRects.find(compositedLa yer);
434 Vector<LayoutRect>* compIterValue;
433 if (compIter == compositorRects.end()) 435 if (compIter == compositorRects.end())
434 compIter = compositorRects.add(compositedLayer, Vector<LayoutRect>() ).iterator; 436 compIterValue = &compositorRects.add(compositedLayer, Vector<LayoutR ect>()).storedValue->value;
437 else
438 compIterValue = &compIter->value;
435 // Transform each rect to the co-ordinate space of it's enclosing compos ited layer. 439 // Transform each rect to the co-ordinate space of it's enclosing compos ited layer.
436 for (size_t i = 0; i < layerIter->value.size(); ++i) { 440 for (size_t i = 0; i < layerIter->value.size(); ++i) {
437 LayoutRect rect = layerIter->value[i]; 441 LayoutRect rect = layerIter->value[i];
438 if (compositedLayer != curLayer) { 442 if (compositedLayer != curLayer) {
439 FloatQuad compositorQuad = geometryMap.mapToContainer(rect, comp ositedLayer->renderer()); 443 FloatQuad compositorQuad = geometryMap.mapToContainer(rect, comp ositedLayer->renderer());
440 rect = LayoutRect(compositorQuad.boundingBox()); 444 rect = LayoutRect(compositorQuad.boundingBox());
441 // If the enclosing composited layer itself is scrolled, we have to undo the subtraction 445 // If the enclosing composited layer itself is scrolled, we have to undo the subtraction
442 // of its scroll offset since we want the offset relative to the scrolling content, not 446 // of its scroll offset since we want the offset relative to the scrolling content, not
443 // the element itself. 447 // the element itself.
444 if (compositedLayer->renderer()->hasOverflowClip()) 448 if (compositedLayer->renderer()->hasOverflowClip())
445 rect.move(compositedLayer->renderBox()->scrolledContentOffse t()); 449 rect.move(compositedLayer->renderBox()->scrolledContentOffse t());
446 } 450 }
447 compIter->value.append(rect); 451 compIterValue->append(rect);
448 } 452 }
449 } 453 }
450 454
451 // Walk child layers of interest 455 // Walk child layers of interest
452 for (const RenderLayer* childLayer = curLayer->firstChild(); childLayer; chi ldLayer = childLayer->nextSibling()) { 456 for (const RenderLayer* childLayer = curLayer->firstChild(); childLayer; chi ldLayer = childLayer->nextSibling()) {
453 if (layersWithRects.contains(childLayer)) { 457 if (layersWithRects.contains(childLayer)) {
454 geometryMap.pushMappingsToAncestor(childLayer, curLayer); 458 geometryMap.pushMappingsToAncestor(childLayer, curLayer);
455 convertLayerRectsToEnclosingCompositedLayerRecursive(childLayer, lay erRects, compositorRects, geometryMap, layersWithRects, layerChildFrameMap); 459 convertLayerRectsToEnclosingCompositedLayerRecursive(childLayer, lay erRects, compositorRects, geometryMap, layersWithRects, layerChildFrameMap);
456 geometryMap.popMappingsToAncestor(curLayer); 460 geometryMap.popMappingsToAncestor(curLayer);
457 } 461 }
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after
962 bool frameIsScrollable = frameView && frameView->isScrollable(); 966 bool frameIsScrollable = frameView && frameView->isScrollable();
963 if (frameIsScrollable != m_wasFrameScrollable) 967 if (frameIsScrollable != m_wasFrameScrollable)
964 return true; 968 return true;
965 969
966 if (WebLayer* scrollLayer = frameView ? scrollingWebLayerForScrollableArea(f rameView) : 0) 970 if (WebLayer* scrollLayer = frameView ? scrollingWebLayerForScrollableArea(f rameView) : 0)
967 return blink::WebSize(frameView->contentsSize()) != scrollLayer->bounds( ); 971 return blink::WebSize(frameView->contentsSize()) != scrollLayer->bounds( );
968 return false; 972 return false;
969 } 973 }
970 974
971 } // namespace WebCore 975 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/page/TouchDisambiguation.cpp ('k') | Source/core/rendering/FastTextAutosizer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698