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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 2826693005: Rename |selection_controller_| to |touch_selection_controller_| (Closed)
Patch Set: Created 3 years, 8 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 | « content/browser/renderer_host/render_widget_host_view_android.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/render_widget_host_view_android.h" 5 #include "content/browser/renderer_host/render_widget_host_view_android.h"
6 6
7 #include <android/bitmap.h> 7 #include <android/bitmap.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 911 matching lines...) Expand 10 before | Expand all | Expand 10 after
922 bool RenderWidgetHostViewAndroid::OnTouchEvent( 922 bool RenderWidgetHostViewAndroid::OnTouchEvent(
923 const ui::MotionEvent& event) { 923 const ui::MotionEvent& event) {
924 if (!host_ || !host_->delegate()) 924 if (!host_ || !host_->delegate())
925 return false; 925 return false;
926 926
927 ComputeEventLatencyOSTouchHistograms(event); 927 ComputeEventLatencyOSTouchHistograms(event);
928 928
929 // If a browser-based widget consumes the touch event, it's critical that 929 // If a browser-based widget consumes the touch event, it's critical that
930 // touch event interception be disabled. This avoids issues with 930 // touch event interception be disabled. This avoids issues with
931 // double-handling for embedder-detected gestures like side swipe. 931 // double-handling for embedder-detected gestures like side swipe.
932 if (selection_controller_ && 932 if (touch_selection_controller_ &&
933 selection_controller_->WillHandleTouchEvent(event)) { 933 touch_selection_controller_->WillHandleTouchEvent(event)) {
934 RequestDisallowInterceptTouchEvent(); 934 RequestDisallowInterceptTouchEvent();
935 return true; 935 return true;
936 } 936 }
937 937
938 if (stylus_text_selector_.OnTouchEvent(event)) { 938 if (stylus_text_selector_.OnTouchEvent(event)) {
939 RequestDisallowInterceptTouchEvent(); 939 RequestDisallowInterceptTouchEvent();
940 return true; 940 return true;
941 } 941 }
942 942
943 ui::FilteredGestureProvider::TouchHandlingResult result = 943 ui::FilteredGestureProvider::TouchHandlingResult result =
(...skipping 18 matching lines...) Expand all
962 // that BeginFrame requests made during ACTION_MOVE dispatch will be honored 962 // that BeginFrame requests made during ACTION_MOVE dispatch will be honored
963 // in the same vsync phase. 963 // in the same vsync phase.
964 if (observing_root_window_ && result.moved_beyond_slop_region) 964 if (observing_root_window_ && result.moved_beyond_slop_region)
965 AddBeginFrameRequest(BEGIN_FRAME); 965 AddBeginFrameRequest(BEGIN_FRAME);
966 966
967 return true; 967 return true;
968 } 968 }
969 969
970 bool RenderWidgetHostViewAndroid::OnTouchHandleEvent( 970 bool RenderWidgetHostViewAndroid::OnTouchHandleEvent(
971 const ui::MotionEvent& event) { 971 const ui::MotionEvent& event) {
972 return selection_controller_ && 972 return touch_selection_controller_ &&
973 selection_controller_->WillHandleTouchEvent(event); 973 touch_selection_controller_->WillHandleTouchEvent(event);
974 } 974 }
975 975
976 void RenderWidgetHostViewAndroid::ResetGestureDetection() { 976 void RenderWidgetHostViewAndroid::ResetGestureDetection() {
977 const ui::MotionEvent* current_down_event = 977 const ui::MotionEvent* current_down_event =
978 gesture_provider_.GetCurrentDownEvent(); 978 gesture_provider_.GetCurrentDownEvent();
979 if (!current_down_event) { 979 if (!current_down_event) {
980 // A hard reset ensures prevention of any timer-based events that might fire 980 // A hard reset ensures prevention of any timer-based events that might fire
981 // after a touch sequence has ended. 981 // after a touch sequence has ended.
982 gesture_provider_.ResetDetection(); 982 gesture_provider_.ResetDetection();
983 return; 983 return;
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
1293 void RenderWidgetHostViewAndroid::SelectBetweenCoordinates( 1293 void RenderWidgetHostViewAndroid::SelectBetweenCoordinates(
1294 const gfx::PointF& base, 1294 const gfx::PointF& base,
1295 const gfx::PointF& extent) { 1295 const gfx::PointF& extent) {
1296 DCHECK(content_view_core_); 1296 DCHECK(content_view_core_);
1297 content_view_core_->SelectBetweenCoordinates(base, extent); 1297 content_view_core_->SelectBetweenCoordinates(base, extent);
1298 } 1298 }
1299 1299
1300 void RenderWidgetHostViewAndroid::OnSelectionEvent( 1300 void RenderWidgetHostViewAndroid::OnSelectionEvent(
1301 ui::SelectionEventType event) { 1301 ui::SelectionEventType event) {
1302 DCHECK(content_view_core_); 1302 DCHECK(content_view_core_);
1303 DCHECK(selection_controller_); 1303 DCHECK(touch_selection_controller_);
1304 // If a selection drag has started, it has taken over the active touch 1304 // If a selection drag has started, it has taken over the active touch
1305 // sequence. Immediately cancel gesture detection and any downstream touch 1305 // sequence. Immediately cancel gesture detection and any downstream touch
1306 // listeners (e.g., web content) to communicate this transfer. 1306 // listeners (e.g., web content) to communicate this transfer.
1307 if (event == ui::SELECTION_HANDLES_SHOWN && 1307 if (event == ui::SELECTION_HANDLES_SHOWN &&
1308 gesture_provider_.GetCurrentDownEvent()) { 1308 gesture_provider_.GetCurrentDownEvent()) {
1309 ResetGestureDetection(); 1309 ResetGestureDetection();
1310 } 1310 }
1311 content_view_core_->OnSelectionEvent( 1311 content_view_core_->OnSelectionEvent(
1312 event, selection_controller_->GetStartPosition(), 1312 event, touch_selection_controller_->GetStartPosition(),
1313 GetSelectionRect(*selection_controller_)); 1313 GetSelectionRect(*touch_selection_controller_));
1314 } 1314 }
1315 1315
1316 std::unique_ptr<ui::TouchHandleDrawable> 1316 std::unique_ptr<ui::TouchHandleDrawable>
1317 RenderWidgetHostViewAndroid::CreateDrawable() { 1317 RenderWidgetHostViewAndroid::CreateDrawable() {
1318 DCHECK(content_view_core_); 1318 DCHECK(content_view_core_);
1319 if (!using_browser_compositor_) { 1319 if (!using_browser_compositor_) {
1320 if (!sync_compositor_) 1320 if (!sync_compositor_)
1321 return nullptr; 1321 return nullptr;
1322 return std::unique_ptr<ui::TouchHandleDrawable>( 1322 return std::unique_ptr<ui::TouchHandleDrawable>(
1323 sync_compositor_->client()->CreateDrawable()); 1323 sync_compositor_->client()->CreateDrawable());
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1374 bool is_transparent) { 1374 bool is_transparent) {
1375 bool is_mobile_optimized = IsMobileOptimizedFrame(frame_metadata); 1375 bool is_mobile_optimized = IsMobileOptimizedFrame(frame_metadata);
1376 gesture_provider_.SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); 1376 gesture_provider_.SetDoubleTapSupportForPageEnabled(!is_mobile_optimized);
1377 1377
1378 if (!content_view_core_) 1378 if (!content_view_core_)
1379 return; 1379 return;
1380 1380
1381 if (overscroll_controller_) 1381 if (overscroll_controller_)
1382 overscroll_controller_->OnFrameMetadataUpdated(frame_metadata); 1382 overscroll_controller_->OnFrameMetadataUpdated(frame_metadata);
1383 1383
1384 if (selection_controller_) { 1384 if (touch_selection_controller_) {
1385 selection_controller_->OnSelectionBoundsChanged( 1385 touch_selection_controller_->OnSelectionBoundsChanged(
1386 frame_metadata.selection.start, frame_metadata.selection.end); 1386 frame_metadata.selection.start, frame_metadata.selection.end);
1387 1387
1388 // Set parameters for adaptive handle orientation. 1388 // Set parameters for adaptive handle orientation.
1389 gfx::SizeF viewport_size(frame_metadata.scrollable_viewport_size); 1389 gfx::SizeF viewport_size(frame_metadata.scrollable_viewport_size);
1390 viewport_size.Scale(frame_metadata.page_scale_factor); 1390 viewport_size.Scale(frame_metadata.page_scale_factor);
1391 gfx::RectF viewport_rect(0.0f, frame_metadata.top_controls_height * 1391 gfx::RectF viewport_rect(0.0f, frame_metadata.top_controls_height *
1392 frame_metadata.top_controls_shown_ratio, 1392 frame_metadata.top_controls_shown_ratio,
1393 viewport_size.width(), viewport_size.height()); 1393 viewport_size.width(), viewport_size.height());
1394 selection_controller_->OnViewportChanged(viewport_rect); 1394 touch_selection_controller_->OnViewportChanged(viewport_rect);
1395 } 1395 }
1396 1396
1397 UpdateBackgroundColor(is_transparent ? SK_ColorTRANSPARENT 1397 UpdateBackgroundColor(is_transparent ? SK_ColorTRANSPARENT
1398 : frame_metadata.root_background_color); 1398 : frame_metadata.root_background_color);
1399 1399
1400 view_.set_content_offset(gfx::Vector2dF(0.0f, 1400 view_.set_content_offset(gfx::Vector2dF(0.0f,
1401 frame_metadata.top_controls_height * 1401 frame_metadata.top_controls_height *
1402 frame_metadata.top_controls_shown_ratio)); 1402 frame_metadata.top_controls_shown_ratio));
1403 1403
1404 float dip_scale = view_.GetDipScale(); 1404 float dip_scale = view_.GetDipScale();
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
1593 if (sync_compositor_) 1593 if (sync_compositor_)
1594 sync_compositor_->DidSendBeginFrame(view_.GetWindowAndroid()); 1594 sync_compositor_->DidSendBeginFrame(view_.GetWindowAndroid());
1595 } 1595 }
1596 1596
1597 bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) { 1597 bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) {
1598 bool needs_animate = false; 1598 bool needs_animate = false;
1599 if (overscroll_controller_ && !is_in_vr_) { 1599 if (overscroll_controller_ && !is_in_vr_) {
1600 needs_animate |= overscroll_controller_->Animate( 1600 needs_animate |= overscroll_controller_->Animate(
1601 frame_time, content_view_core_->GetViewAndroid()->GetLayer()); 1601 frame_time, content_view_core_->GetViewAndroid()->GetLayer());
1602 } 1602 }
1603 if (selection_controller_) 1603 if (touch_selection_controller_)
1604 needs_animate |= selection_controller_->Animate(frame_time); 1604 needs_animate |= touch_selection_controller_->Animate(frame_time);
1605 return needs_animate; 1605 return needs_animate;
1606 } 1606 }
1607 1607
1608 void RenderWidgetHostViewAndroid::RequestDisallowInterceptTouchEvent() { 1608 void RenderWidgetHostViewAndroid::RequestDisallowInterceptTouchEvent() {
1609 if (content_view_core_) 1609 if (content_view_core_)
1610 content_view_core_->RequestDisallowInterceptTouchEvent(); 1610 content_view_core_->RequestDisallowInterceptTouchEvent();
1611 } 1611 }
1612 1612
1613 void RenderWidgetHostViewAndroid::EvictDelegatedFrame() { 1613 void RenderWidgetHostViewAndroid::EvictDelegatedFrame() {
1614 DestroyDelegatedContent(); 1614 DestroyDelegatedContent();
(...skipping 23 matching lines...) Expand all
1638 InputEventAckState ack_result) { 1638 InputEventAckState ack_result) {
1639 if (overscroll_controller_) 1639 if (overscroll_controller_)
1640 overscroll_controller_->OnGestureEventAck(event, ack_result); 1640 overscroll_controller_->OnGestureEventAck(event, ack_result);
1641 1641
1642 if (content_view_core_) 1642 if (content_view_core_)
1643 content_view_core_->OnGestureEventAck(event, ack_result); 1643 content_view_core_->OnGestureEventAck(event, ack_result);
1644 } 1644 }
1645 1645
1646 InputEventAckState RenderWidgetHostViewAndroid::FilterInputEvent( 1646 InputEventAckState RenderWidgetHostViewAndroid::FilterInputEvent(
1647 const blink::WebInputEvent& input_event) { 1647 const blink::WebInputEvent& input_event) {
1648 if (selection_controller_ && 1648 if (touch_selection_controller_ &&
1649 blink::WebInputEvent::IsGestureEventType(input_event.GetType())) { 1649 blink::WebInputEvent::IsGestureEventType(input_event.GetType())) {
1650 const blink::WebGestureEvent& gesture_event = 1650 const blink::WebGestureEvent& gesture_event =
1651 static_cast<const blink::WebGestureEvent&>(input_event); 1651 static_cast<const blink::WebGestureEvent&>(input_event);
1652 switch (gesture_event.GetType()) { 1652 switch (gesture_event.GetType()) {
1653 case blink::WebInputEvent::kGestureLongPress: 1653 case blink::WebInputEvent::kGestureLongPress:
1654 selection_controller_->HandleLongPressEvent( 1654 touch_selection_controller_->HandleLongPressEvent(
1655 base::TimeTicks() + 1655 base::TimeTicks() +
1656 base::TimeDelta::FromSecondsD(input_event.TimeStampSeconds()), 1656 base::TimeDelta::FromSecondsD(input_event.TimeStampSeconds()),
1657 gfx::PointF(gesture_event.x, gesture_event.y)); 1657 gfx::PointF(gesture_event.x, gesture_event.y));
1658 break; 1658 break;
1659 1659
1660 case blink::WebInputEvent::kGestureTap: 1660 case blink::WebInputEvent::kGestureTap:
1661 selection_controller_->HandleTapEvent( 1661 touch_selection_controller_->HandleTapEvent(
1662 gfx::PointF(gesture_event.x, gesture_event.y), 1662 gfx::PointF(gesture_event.x, gesture_event.y),
1663 gesture_event.data.tap.tap_count); 1663 gesture_event.data.tap.tap_count);
1664 break; 1664 break;
1665 1665
1666 case blink::WebInputEvent::kGestureScrollBegin: 1666 case blink::WebInputEvent::kGestureScrollBegin:
1667 selection_controller_->OnScrollBeginEvent(); 1667 touch_selection_controller_->OnScrollBeginEvent();
1668 break; 1668 break;
1669 1669
1670 default: 1670 default:
1671 break; 1671 break;
1672 } 1672 }
1673 } 1673 }
1674 1674
1675 if (overscroll_controller_ && 1675 if (overscroll_controller_ &&
1676 blink::WebInputEvent::IsGestureEventType(input_event.GetType()) && 1676 blink::WebInputEvent::IsGestureEventType(input_event.GetType()) &&
1677 overscroll_controller_->WillHandleGestureEvent( 1677 overscroll_controller_->WillHandleGestureEvent(
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
1824 host_->MoveCaret(point); 1824 host_->MoveCaret(point);
1825 } 1825 }
1826 1826
1827 void RenderWidgetHostViewAndroid::ShowContextMenuAtPoint( 1827 void RenderWidgetHostViewAndroid::ShowContextMenuAtPoint(
1828 const gfx::Point& point) { 1828 const gfx::Point& point) {
1829 if (host_) 1829 if (host_)
1830 host_->ShowContextMenuAtPoint(point); 1830 host_->ShowContextMenuAtPoint(point);
1831 } 1831 }
1832 1832
1833 void RenderWidgetHostViewAndroid::DismissTextHandles() { 1833 void RenderWidgetHostViewAndroid::DismissTextHandles() {
1834 if (selection_controller_) 1834 if (touch_selection_controller_)
1835 selection_controller_->HideAndDisallowShowingAutomatically(); 1835 touch_selection_controller_->HideAndDisallowShowingAutomatically();
1836 } 1836 }
1837 1837
1838 void RenderWidgetHostViewAndroid::SetTextHandlesTemporarilyHidden(bool hidden) { 1838 void RenderWidgetHostViewAndroid::SetTextHandlesTemporarilyHidden(bool hidden) {
1839 if (selection_controller_) 1839 if (touch_selection_controller_)
1840 selection_controller_->SetTemporarilyHidden(hidden); 1840 touch_selection_controller_->SetTemporarilyHidden(hidden);
1841 } 1841 }
1842 1842
1843 SkColor RenderWidgetHostViewAndroid::GetCachedBackgroundColor() const { 1843 SkColor RenderWidgetHostViewAndroid::GetCachedBackgroundColor() const {
1844 return cached_background_color_; 1844 return cached_background_color_;
1845 } 1845 }
1846 1846
1847 void RenderWidgetHostViewAndroid::SetIsInVR(bool is_in_vr) { 1847 void RenderWidgetHostViewAndroid::SetIsInVR(bool is_in_vr) {
1848 is_in_vr_ = is_in_vr; 1848 is_in_vr_ = is_in_vr;
1849 } 1849 }
1850 1850
(...skipping 26 matching lines...) Expand all
1877 } 1877 }
1878 1878
1879 void RenderWidgetHostViewAndroid::SetContentViewCore( 1879 void RenderWidgetHostViewAndroid::SetContentViewCore(
1880 ContentViewCoreImpl* content_view_core) { 1880 ContentViewCoreImpl* content_view_core) {
1881 DCHECK(!content_view_core || !content_view_core_ || 1881 DCHECK(!content_view_core || !content_view_core_ ||
1882 (content_view_core_ == content_view_core)); 1882 (content_view_core_ == content_view_core));
1883 StopObservingRootWindow(); 1883 StopObservingRootWindow();
1884 1884
1885 bool resize = false; 1885 bool resize = false;
1886 if (content_view_core != content_view_core_) { 1886 if (content_view_core != content_view_core_) {
1887 selection_controller_.reset(); 1887 touch_selection_controller_.reset();
1888 RunAckCallbacks(); 1888 RunAckCallbacks();
1889 // TODO(yusufo) : Get rid of the below conditions and have a better handling 1889 // TODO(yusufo) : Get rid of the below conditions and have a better handling
1890 // for resizing after crbug.com/628302 is handled. 1890 // for resizing after crbug.com/628302 is handled.
1891 bool is_size_initialized = !content_view_core 1891 bool is_size_initialized = !content_view_core
1892 || content_view_core->GetViewportSizeDip().width() != 0 1892 || content_view_core->GetViewportSizeDip().width() != 0
1893 || content_view_core->GetViewportSizeDip().height() != 0; 1893 || content_view_core->GetViewportSizeDip().height() != 0;
1894 if (content_view_core_ || is_size_initialized) 1894 if (content_view_core_ || is_size_initialized)
1895 resize = true; 1895 resize = true;
1896 if (content_view_core_) { 1896 if (content_view_core_) {
1897 content_view_core_->RemoveObserver(this); 1897 content_view_core_->RemoveObserver(this);
(...skipping 23 matching lines...) Expand all
1921 sync_compositor_.reset(); 1921 sync_compositor_.reset();
1922 return; 1922 return;
1923 } 1923 }
1924 1924
1925 if (is_showing_ && view_.GetWindowAndroid()) 1925 if (is_showing_ && view_.GetWindowAndroid())
1926 StartObservingRootWindow(); 1926 StartObservingRootWindow();
1927 1927
1928 if (resize) 1928 if (resize)
1929 WasResized(); 1929 WasResized();
1930 1930
1931 if (!selection_controller_) 1931 if (!touch_selection_controller_)
1932 selection_controller_ = CreateSelectionController(this, content_view_core_); 1932 touch_selection_controller_ =
1933 CreateSelectionController(this, content_view_core_);
1933 1934
1934 if (content_view_core_) 1935 if (content_view_core_)
1935 CreateOverscrollControllerIfPossible(); 1936 CreateOverscrollControllerIfPossible();
1936 } 1937 }
1937 1938
1938 void RenderWidgetHostViewAndroid::RunAckCallbacks() { 1939 void RenderWidgetHostViewAndroid::RunAckCallbacks() {
1939 while (!ack_callbacks_.empty()) { 1940 while (!ack_callbacks_.empty()) {
1940 ack_callbacks_.front().Run(); 1941 ack_callbacks_.front().Run();
1941 ack_callbacks_.pop(); 1942 ack_callbacks_.pop();
1942 } 1943 }
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
2194 2195
2195 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor(); 2196 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor();
2196 if (!compositor) 2197 if (!compositor)
2197 return; 2198 return;
2198 2199
2199 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( 2200 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>(
2200 overscroll_refresh_handler, compositor, view_.GetDipScale()); 2201 overscroll_refresh_handler, compositor, view_.GetDipScale());
2201 } 2202 }
2202 2203
2203 } // namespace content 2204 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_android.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698