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

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

Issue 406053002: Remove setting for disabling cc touch hit testing. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove ScrollingCoordinator::touchHitTestingEnabled() Created 6 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
« no previous file with comments | « Source/core/page/scrolling/ScrollingCoordinator.h ('k') | Source/web/WebSettingsImpl.h » ('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 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 , m_shouldScrollOnMainThreadDirty(false) 91 , m_shouldScrollOnMainThreadDirty(false)
92 , m_wasFrameScrollable(false) 92 , m_wasFrameScrollable(false)
93 , m_lastMainThreadScrollingReasons(0) 93 , m_lastMainThreadScrollingReasons(0)
94 { 94 {
95 } 95 }
96 96
97 ScrollingCoordinator::~ScrollingCoordinator() 97 ScrollingCoordinator::~ScrollingCoordinator()
98 { 98 {
99 } 99 }
100 100
101 bool ScrollingCoordinator::touchHitTestingEnabled() const
102 {
103 if (!m_page->mainFrame()->isLocalFrame())
104 return false;
105 RenderView* contentRenderer = m_page->deprecatedLocalMainFrame()->contentRen derer();
106 Settings* settings = m_page->mainFrame()->settings();
107 return RuntimeEnabledFeatures::touchEnabled() && settings->compositorTouchHi tTesting() && contentRenderer && contentRenderer->usesCompositing();
108 }
109
110 void ScrollingCoordinator::setShouldHandleScrollGestureOnMainThreadRegion(const Region& region) 101 void ScrollingCoordinator::setShouldHandleScrollGestureOnMainThreadRegion(const Region& region)
111 { 102 {
112 if (!m_page->mainFrame()->isLocalFrame()) 103 if (!m_page->mainFrame()->isLocalFrame())
113 return; 104 return;
114 if (WebLayer* scrollLayer = toWebLayer(m_page->deprecatedLocalMainFrame()->v iew()->layerForScrolling())) { 105 if (WebLayer* scrollLayer = toWebLayer(m_page->deprecatedLocalMainFrame()->v iew()->layerForScrolling())) {
115 Vector<IntRect> rects = region.rects(); 106 Vector<IntRect> rects = region.rects();
116 WebVector<WebRect> webRects(rects.size()); 107 WebVector<WebRect> webRects(rects.size());
117 for (size_t i = 0; i < rects.size(); ++i) 108 for (size_t i = 0; i < rects.size(); ++i)
118 webRects[i] = rects[i]; 109 webRects[i] = rects[i];
119 scrollLayer->setNonFastScrollableRegion(webRects); 110 scrollLayer->setNonFastScrollableRegion(webRects);
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 geometryMap.pushMappingsToAncestor(rootLayer, 0); 510 geometryMap.pushMappingsToAncestor(rootLayer, 0);
520 LayerFrameMap layerChildFrameMap; 511 LayerFrameMap layerChildFrameMap;
521 makeLayerChildFrameMap(mainFrame, &layerChildFrameMap); 512 makeLayerChildFrameMap(mainFrame, &layerChildFrameMap);
522 projectRectsToGraphicsLayerSpaceRecursive(rootLayer, layerRects, graphicsRec ts, geometryMap, layersWithRects, layerChildFrameMap); 513 projectRectsToGraphicsLayerSpaceRecursive(rootLayer, layerRects, graphicsRec ts, geometryMap, layersWithRects, layerChildFrameMap);
523 } 514 }
524 515
525 void ScrollingCoordinator::updateTouchEventTargetRectsIfNeeded() 516 void ScrollingCoordinator::updateTouchEventTargetRectsIfNeeded()
526 { 517 {
527 TRACE_EVENT0("input", "ScrollingCoordinator::updateTouchEventTargetRectsIfNe eded"); 518 TRACE_EVENT0("input", "ScrollingCoordinator::updateTouchEventTargetRectsIfNe eded");
528 519
529 if (!touchHitTestingEnabled()) 520 if (!RuntimeEnabledFeatures::touchEnabled())
530 return; 521 return;
531 522
532 LayerHitTestRects touchEventTargetRects; 523 LayerHitTestRects touchEventTargetRects;
533 computeTouchEventTargetRects(touchEventTargetRects); 524 computeTouchEventTargetRects(touchEventTargetRects);
534 setTouchEventTargetRects(touchEventTargetRects); 525 setTouchEventTargetRects(touchEventTargetRects);
535 } 526 }
536 527
537 void ScrollingCoordinator::reset() 528 void ScrollingCoordinator::reset()
538 { 529 {
539 for (ScrollbarMap::iterator it = m_horizontalScrollbars.begin(); it != m_hor izontalScrollbars.end(); ++it) 530 for (ScrollbarMap::iterator it = m_horizontalScrollbars.begin(); it != m_hor izontalScrollbars.end(); ++it)
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 const GraphicsLayer* graphicsLayer = iter->key; 574 const GraphicsLayer* graphicsLayer = iter->key;
584 WebVector<WebRect> webRects(iter->value.size()); 575 WebVector<WebRect> webRects(iter->value.size());
585 for (size_t i = 0; i < iter->value.size(); ++i) 576 for (size_t i = 0; i < iter->value.size(); ++i)
586 webRects[i] = enclosingIntRect(iter->value[i]); 577 webRects[i] = enclosingIntRect(iter->value[i]);
587 graphicsLayer->platformLayer()->setTouchEventHandlerRegion(webRects); 578 graphicsLayer->platformLayer()->setTouchEventHandlerRegion(webRects);
588 } 579 }
589 } 580 }
590 581
591 void ScrollingCoordinator::touchEventTargetRectsDidChange() 582 void ScrollingCoordinator::touchEventTargetRectsDidChange()
592 { 583 {
593 if (!touchHitTestingEnabled()) 584 if (!RuntimeEnabledFeatures::touchEnabled())
594 return; 585 return;
595 586
596 // Wait until after layout to update. 587 // Wait until after layout to update.
597 if (!m_page->deprecatedLocalMainFrame()->view() || m_page->deprecatedLocalMa inFrame()->view()->needsLayout()) 588 if (!m_page->deprecatedLocalMainFrame()->view() || m_page->deprecatedLocalMa inFrame()->view()->needsLayout())
598 return; 589 return;
599 590
600 // FIXME: scheduleAnimation() is just a method of forcing the compositor to realize that it 591 // FIXME: scheduleAnimation() is just a method of forcing the compositor to realize that it
601 // needs to commit here. We should expose a cleaner API for this. 592 // needs to commit here. We should expose a cleaner API for this.
602 RenderView* renderView = m_page->deprecatedLocalMainFrame()->contentRenderer (); 593 RenderView* renderView = m_page->deprecatedLocalMainFrame()->contentRenderer ();
603 if (renderView && renderView->compositor() && renderView->compositor()->stal eInCompositingMode()) 594 if (renderView && renderView->compositor() && renderView->compositor()->stal eInCompositingMode())
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
815 renderer->computeLayerHitTestRects(rects); 806 renderer->computeLayerHitTestRects(rects);
816 } 807 }
817 } 808 }
818 } 809 }
819 810
820 } 811 }
821 812
822 void ScrollingCoordinator::computeTouchEventTargetRects(LayerHitTestRects& rects ) 813 void ScrollingCoordinator::computeTouchEventTargetRects(LayerHitTestRects& rects )
823 { 814 {
824 TRACE_EVENT0("input", "ScrollingCoordinator::computeTouchEventTargetRects"); 815 TRACE_EVENT0("input", "ScrollingCoordinator::computeTouchEventTargetRects");
825 ASSERT(touchHitTestingEnabled()); 816 ASSERT(RuntimeEnabledFeatures::touchEnabled());
826 817
827 Document* document = m_page->deprecatedLocalMainFrame()->document(); 818 Document* document = m_page->deprecatedLocalMainFrame()->document();
828 if (!document || !document->view()) 819 if (!document || !document->view())
829 return; 820 return;
830 821
831 accumulateDocumentTouchEventTargetRects(rects, document); 822 accumulateDocumentTouchEventTargetRects(rects, document);
832 } 823 }
833 824
834 void ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange(FrameView* fr ameView) 825 void ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange(FrameView* fr ameView)
835 { 826 {
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 bool frameIsScrollable = frameView && frameView->isScrollable(); 950 bool frameIsScrollable = frameView && frameView->isScrollable();
960 if (frameIsScrollable != m_wasFrameScrollable) 951 if (frameIsScrollable != m_wasFrameScrollable)
961 return true; 952 return true;
962 953
963 if (WebLayer* scrollLayer = frameView ? toWebLayer(frameView->layerForScroll ing()) : 0) 954 if (WebLayer* scrollLayer = frameView ? toWebLayer(frameView->layerForScroll ing()) : 0)
964 return blink::WebSize(frameView->contentsSize()) != scrollLayer->bounds( ); 955 return blink::WebSize(frameView->contentsSize()) != scrollLayer->bounds( );
965 return false; 956 return false;
966 } 957 }
967 958
968 } // namespace WebCore 959 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/page/scrolling/ScrollingCoordinator.h ('k') | Source/web/WebSettingsImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698