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

Unified Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 2792063003: Factor out RenderWidgetHostConnector (Closed)
Patch Set: format 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/render_widget_host_view_android.cc
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
index 007cbf693f34e5f7c77b8e759b7ffff8be615149..c15fb3cc8af83145ca7b69a342f8e98ed5b04f1f 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -43,6 +43,7 @@
#include "content/browser/android/content_view_core_impl.h"
#include "content/browser/android/ime_adapter_android.h"
#include "content/browser/android/overscroll_controller_android.h"
+#include "content/browser/android/selection_popup_controller.h"
#include "content/browser/android/synchronous_compositor_host.h"
#include "content/browser/compositor/surface_utils.h"
#include "content/browser/devtools/render_frame_devtools_agent_host.h"
@@ -759,7 +760,7 @@ void RenderWidgetHostViewAndroid::OnTextSelectionChanged(
if (is_in_vr_)
return;
- if (!content_view_core_)
+ if (!selection_popup_controller_)
return;
RenderWidgetHostImpl* focused_widget = GetFocusedWidget();
@@ -769,7 +770,7 @@ void RenderWidgetHostViewAndroid::OnTextSelectionChanged(
const TextInputManager::TextSelection& selection =
*text_input_manager_->GetTextSelection(focused_widget->GetView());
- content_view_core_->OnSelectionChanged(
+ selection_popup_controller_->OnSelectionChanged(
base::UTF16ToUTF8(selection.selected_text()));
}
@@ -918,8 +919,8 @@ bool RenderWidgetHostViewAndroid::OnTouchEvent(
// If a browser-based widget consumes the touch event, it's critical that
// touch event interception be disabled. This avoids issues with
// double-handling for embedder-detected gestures like side swipe.
- if (selection_controller_ &&
- selection_controller_->WillHandleTouchEvent(event)) {
+ if (touch_selection_controller_ &&
+ touch_selection_controller_->WillHandleTouchEvent(event)) {
RequestDisallowInterceptTouchEvent();
return true;
}
@@ -958,8 +959,8 @@ bool RenderWidgetHostViewAndroid::OnTouchEvent(
bool RenderWidgetHostViewAndroid::OnTouchHandleEvent(
const ui::MotionEvent& event) {
- return selection_controller_ &&
- selection_controller_->WillHandleTouchEvent(event);
+ return touch_selection_controller_ &&
+ touch_selection_controller_->WillHandleTouchEvent(event);
}
void RenderWidgetHostViewAndroid::ResetGestureDetection() {
@@ -1270,8 +1271,9 @@ void RenderWidgetHostViewAndroid::SelectBetweenCoordinates(
void RenderWidgetHostViewAndroid::OnSelectionEvent(
ui::SelectionEventType event) {
- DCHECK(content_view_core_);
- DCHECK(selection_controller_);
+ DCHECK(touch_selection_controller_);
+ if (!selection_popup_controller_)
+ return;
// If a selection drag has started, it has taken over the active touch
// sequence. Immediately cancel gesture detection and any downstream touch
// listeners (e.g., web content) to communicate this transfer.
@@ -1279,9 +1281,9 @@ void RenderWidgetHostViewAndroid::OnSelectionEvent(
gesture_provider_.GetCurrentDownEvent()) {
ResetGestureDetection();
}
- content_view_core_->OnSelectionEvent(
- event, selection_controller_->GetStartPosition(),
- GetSelectionRect(*selection_controller_));
+ selection_popup_controller_->OnSelectionEvent(
+ event, touch_selection_controller_->GetStartPosition(),
+ GetSelectionRect(*touch_selection_controller_));
}
std::unique_ptr<ui::TouchHandleDrawable>
@@ -1352,8 +1354,8 @@ void RenderWidgetHostViewAndroid::OnFrameMetadataUpdated(
if (overscroll_controller_)
overscroll_controller_->OnFrameMetadataUpdated(frame_metadata);
- if (selection_controller_) {
- selection_controller_->OnSelectionBoundsChanged(
+ if (touch_selection_controller_) {
+ touch_selection_controller_->OnSelectionBoundsChanged(
frame_metadata.selection.start, frame_metadata.selection.end);
// Set parameters for adaptive handle orientation.
@@ -1362,7 +1364,7 @@ void RenderWidgetHostViewAndroid::OnFrameMetadataUpdated(
gfx::RectF viewport_rect(0.0f, frame_metadata.top_controls_height *
frame_metadata.top_controls_shown_ratio,
viewport_size.width(), viewport_size.height());
- selection_controller_->OnViewportChanged(viewport_rect);
+ touch_selection_controller_->OnViewportChanged(viewport_rect);
}
UpdateBackgroundColor(is_transparent ? SK_ColorTRANSPARENT
@@ -1571,8 +1573,8 @@ bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) {
needs_animate |= overscroll_controller_->Animate(
frame_time, content_view_core_->GetViewAndroid()->GetLayer());
}
- if (selection_controller_)
- needs_animate |= selection_controller_->Animate(frame_time);
+ if (touch_selection_controller_)
+ needs_animate |= touch_selection_controller_->Animate(frame_time);
return needs_animate;
}
@@ -1616,26 +1618,26 @@ void RenderWidgetHostViewAndroid::GestureEventAck(
InputEventAckState RenderWidgetHostViewAndroid::FilterInputEvent(
const blink::WebInputEvent& input_event) {
- if (selection_controller_ &&
+ if (touch_selection_controller_ &&
blink::WebInputEvent::isGestureEventType(input_event.type())) {
const blink::WebGestureEvent& gesture_event =
static_cast<const blink::WebGestureEvent&>(input_event);
switch (gesture_event.type()) {
case blink::WebInputEvent::GestureLongPress:
- selection_controller_->HandleLongPressEvent(
+ touch_selection_controller_->HandleLongPressEvent(
base::TimeTicks() +
- base::TimeDelta::FromSecondsD(input_event.timeStampSeconds()),
+ base::TimeDelta::FromSecondsD(input_event.timeStampSeconds()),
gfx::PointF(gesture_event.x, gesture_event.y));
break;
case blink::WebInputEvent::GestureTap:
- selection_controller_->HandleTapEvent(
+ touch_selection_controller_->HandleTapEvent(
gfx::PointF(gesture_event.x, gesture_event.y),
gesture_event.data.tap.tapCount);
break;
case blink::WebInputEvent::GestureScrollBegin:
- selection_controller_->OnScrollBeginEvent();
+ touch_selection_controller_->OnScrollBeginEvent();
break;
default:
@@ -1802,13 +1804,13 @@ void RenderWidgetHostViewAndroid::ShowContextMenuAtPoint(
}
void RenderWidgetHostViewAndroid::DismissTextHandles() {
- if (selection_controller_)
- selection_controller_->HideAndDisallowShowingAutomatically();
+ if (touch_selection_controller_)
+ touch_selection_controller_->HideAndDisallowShowingAutomatically();
}
void RenderWidgetHostViewAndroid::SetTextHandlesTemporarilyHidden(bool hidden) {
- if (selection_controller_)
- selection_controller_->SetTemporarilyHidden(hidden);
+ if (touch_selection_controller_)
+ touch_selection_controller_->SetTemporarilyHidden(hidden);
}
SkColor RenderWidgetHostViewAndroid::GetCachedBackgroundColor() const {
@@ -1855,7 +1857,7 @@ void RenderWidgetHostViewAndroid::SetContentViewCore(
bool resize = false;
if (content_view_core != content_view_core_) {
- selection_controller_.reset();
+ touch_selection_controller_.reset();
RunAckCallbacks();
// TODO(yusufo) : Get rid of the below conditions and have a better handling
// for resizing after crbug.com/628302 is handled.
@@ -1899,8 +1901,9 @@ void RenderWidgetHostViewAndroid::SetContentViewCore(
if (resize)
WasResized();
- if (!selection_controller_)
- selection_controller_ = CreateSelectionController(this, content_view_core_);
+ if (!touch_selection_controller_)
+ touch_selection_controller_ =
+ CreateSelectionController(this, content_view_core_);
if (content_view_core_)
CreateOverscrollControllerIfPossible();

Powered by Google App Engine
This is Rietveld 408576698