| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/renderer/input/frame_input_handler_impl.h" | 5 #include "content/renderer/input/frame_input_handler_impl.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/debug/stack_trace.h" | 10 #include "base/debug/stack_trace.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 void FrameInputHandlerImpl::CreateMojoService( | 47 void FrameInputHandlerImpl::CreateMojoService( |
| 48 base::WeakPtr<RenderFrameImpl> render_frame, | 48 base::WeakPtr<RenderFrameImpl> render_frame, |
| 49 const service_manager::BindSourceInfo& source_info, | 49 const service_manager::BindSourceInfo& source_info, |
| 50 mojom::FrameInputHandlerRequest request) { | 50 mojom::FrameInputHandlerRequest request) { |
| 51 DCHECK(render_frame); | 51 DCHECK(render_frame); |
| 52 | 52 |
| 53 // Owns itself. Will be deleted when message pipe is destroyed. | 53 // Owns itself. Will be deleted when message pipe is destroyed. |
| 54 new FrameInputHandlerImpl(render_frame, std::move(request)); | 54 new FrameInputHandlerImpl(render_frame, std::move(request)); |
| 55 } | 55 } |
| 56 | 56 |
| 57 void FrameInputHandlerImpl::RunOnMainThread(const base::Closure& closure) { | 57 void FrameInputHandlerImpl::RunOnMainThread(base::OnceClosure closure) { |
| 58 if (input_event_queue_) { | 58 if (input_event_queue_) { |
| 59 input_event_queue_->QueueClosure(closure); | 59 input_event_queue_->QueueClosure(std::move(closure)); |
| 60 } else { | 60 } else { |
| 61 closure.Run(); | 61 std::move(closure).Run(); |
| 62 } | 62 } |
| 63 } | 63 } |
| 64 | 64 |
| 65 void FrameInputHandlerImpl::SetCompositionFromExistingText( | 65 void FrameInputHandlerImpl::SetCompositionFromExistingText( |
| 66 int32_t start, | 66 int32_t start, |
| 67 int32_t end, | 67 int32_t end, |
| 68 const std::vector<ui::CompositionUnderline>& ui_underlines) { | 68 const std::vector<ui::CompositionUnderline>& ui_underlines) { |
| 69 if (!main_thread_task_runner_->BelongsToCurrentThread()) { | 69 if (!main_thread_task_runner_->BelongsToCurrentThread()) { |
| 70 RunOnMainThread( | 70 RunOnMainThread( |
| 71 base::Bind(&FrameInputHandlerImpl::SetCompositionFromExistingText, | 71 base::Bind(&FrameInputHandlerImpl::SetCompositionFromExistingText, |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 RunOnMainThread(base::Bind(&FrameInputHandlerImpl::ExecuteCommandOnMainThread, | 240 RunOnMainThread(base::Bind(&FrameInputHandlerImpl::ExecuteCommandOnMainThread, |
| 241 weak_this_, "Delete", UpdateState::kNone)); | 241 weak_this_, "Delete", UpdateState::kNone)); |
| 242 } | 242 } |
| 243 | 243 |
| 244 void FrameInputHandlerImpl::SelectAll() { | 244 void FrameInputHandlerImpl::SelectAll() { |
| 245 RunOnMainThread(base::Bind(&FrameInputHandlerImpl::ExecuteCommandOnMainThread, | 245 RunOnMainThread(base::Bind(&FrameInputHandlerImpl::ExecuteCommandOnMainThread, |
| 246 weak_this_, "SelectAll", | 246 weak_this_, "SelectAll", |
| 247 UpdateState::kIsSelectingRange)); | 247 UpdateState::kIsSelectingRange)); |
| 248 } | 248 } |
| 249 | 249 |
| 250 void FrameInputHandlerImpl::HitTestFrameAt(const gfx::PointF& point, |
| 251 HitTestFrameAtCallback callback) { |
| 252 RunOnMainThread(base::BindOnce(&FrameInputHandlerImpl::HitTestOnMainThread, |
| 253 weak_this_, point, std::move(callback))); |
| 254 } |
| 255 |
| 256 void FrameInputHandlerImpl::HitTestOnMainThread( |
| 257 const gfx::PointF& point, |
| 258 HitTestFrameAtCallback callback) { |
| 259 std::move(callback).Run( |
| 260 render_frame_->GetRenderWidget()->HitTestFrameAt(point)); |
| 261 } |
| 262 |
| 250 void FrameInputHandlerImpl::CollapseSelection() { | 263 void FrameInputHandlerImpl::CollapseSelection() { |
| 251 if (!main_thread_task_runner_->BelongsToCurrentThread()) { | 264 if (!main_thread_task_runner_->BelongsToCurrentThread()) { |
| 252 RunOnMainThread( | 265 RunOnMainThread( |
| 253 base::Bind(&FrameInputHandlerImpl::CollapseSelection, weak_this_)); | 266 base::Bind(&FrameInputHandlerImpl::CollapseSelection, weak_this_)); |
| 254 return; | 267 return; |
| 255 } | 268 } |
| 256 | 269 |
| 257 if (!render_frame_) | 270 if (!render_frame_) |
| 258 return; | 271 return; |
| 259 const blink::WebRange& range = | 272 const blink::WebRange& range = |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 break; | 395 break; |
| 383 } | 396 } |
| 384 } | 397 } |
| 385 | 398 |
| 386 FrameInputHandlerImpl::HandlingState::~HandlingState() { | 399 FrameInputHandlerImpl::HandlingState::~HandlingState() { |
| 387 render_frame_->set_handling_select_range(original_select_range_value_); | 400 render_frame_->set_handling_select_range(original_select_range_value_); |
| 388 render_frame_->set_is_pasting(original_pasting_value_); | 401 render_frame_->set_is_pasting(original_pasting_value_); |
| 389 } | 402 } |
| 390 | 403 |
| 391 } // namespace content | 404 } // namespace content |
| OLD | NEW |