Index: content/browser/frame_host/input/legacy_ipc_frame_input_handler.cc |
diff --git a/content/browser/frame_host/input/legacy_ipc_frame_input_handler.cc b/content/browser/frame_host/input/legacy_ipc_frame_input_handler.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0cfd482b0a9d201c664ae5a48fc88d5ca6287a34 |
--- /dev/null |
+++ b/content/browser/frame_host/input/legacy_ipc_frame_input_handler.cc |
@@ -0,0 +1,146 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "content/browser/frame_host/input/legacy_ipc_frame_input_handler.h" |
+ |
+#include "base/strings/utf_string_conversions.h" |
+#include "content/browser/renderer_host/render_widget_host_impl.h" |
+#include "content/common/input_messages.h" |
+ |
+namespace content { |
+ |
+LegacyIPCFrameInputHandler::LegacyIPCFrameInputHandler( |
+ RenderFrameHostImpl* frame_host, |
+ int routing_id) |
+ : frame_host_(frame_host), routing_id_(routing_id) { |
+ DCHECK(frame_host); |
+} |
+ |
+LegacyIPCFrameInputHandler::~LegacyIPCFrameInputHandler() {} |
+ |
+void LegacyIPCFrameInputHandler::SetCompositionFromExistingText( |
+ int32_t start, |
+ int32_t end, |
+ const std::vector<ui::CompositionUnderline>& ui_underlines) { |
+ std::vector<blink::WebCompositionUnderline> underlines; |
+ for (const auto& underline : ui_underlines) { |
+ blink::WebCompositionUnderline blink_underline( |
+ underline.start_offset, underline.end_offset, underline.color, |
+ underline.thick, underline.background_color); |
+ underlines.push_back(blink_underline); |
+ } |
+ |
+ SendInput(base::MakeUnique<InputMsg_SetCompositionFromExistingText>( |
+ routing_id_, start, end, underlines)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::ExtendSelectionAndDelete(int32_t before, |
+ int32_t after) { |
+ SendInput(base::MakeUnique<InputMsg_ExtendSelectionAndDelete>(routing_id_, |
+ before, after)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::DeleteSurroundingText(int32_t before, |
+ int32_t after) { |
+ SendInput(base::MakeUnique<InputMsg_DeleteSurroundingText>(routing_id_, |
+ before, after)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::DeleteSurroundingTextInCodePoints( |
+ int32_t before, |
+ int32_t after) { |
+ SendInput(base::MakeUnique<InputMsg_DeleteSurroundingTextInCodePoints>( |
+ routing_id_, before, after)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::SetEditableSelectionOffsets(int32_t start, |
+ int32_t end) { |
+ SendInput(base::MakeUnique<InputMsg_SetEditableSelectionOffsets>(routing_id_, |
+ start, end)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::ExecuteEditCommand( |
+ const std::string& command, |
+ const base::Optional<base::string16>& value) { |
+ if (!value) { |
+ SendInput(base::MakeUnique<InputMsg_ExecuteNoValueEditCommand>(routing_id_, |
+ command)); |
+ } |
+} |
+ |
+void LegacyIPCFrameInputHandler::Undo() { |
+ SendInput(base::MakeUnique<InputMsg_Undo>(routing_id_)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::Redo() { |
+ SendInput(base::MakeUnique<InputMsg_Redo>(routing_id_)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::Cut() { |
+ SendInput(base::MakeUnique<InputMsg_Cut>(routing_id_)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::Copy() { |
+ SendInput(base::MakeUnique<InputMsg_Copy>(routing_id_)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::CopyToFindPboard() { |
+#if defined(OS_MACOSX) |
+ SendInput(base::MakeUnique<InputMsg_CopyToFindPboard>(routing_id_)); |
+#endif |
+} |
+ |
+void LegacyIPCFrameInputHandler::Paste() { |
+ SendInput(base::MakeUnique<InputMsg_Paste>(routing_id_)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::PasteAndMatchStyle() { |
+ SendInput(base::MakeUnique<InputMsg_PasteAndMatchStyle>(routing_id_)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::Replace(const base::string16& word) { |
+ SendInput(base::MakeUnique<InputMsg_Replace>(routing_id_, word)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::ReplaceMisspelling( |
+ const base::string16& word) { |
+ SendInput(base::MakeUnique<InputMsg_ReplaceMisspelling>(routing_id_, word)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::Delete() { |
+ SendInput(base::MakeUnique<InputMsg_Delete>(routing_id_)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::SelectAll() { |
+ SendInput(base::MakeUnique<InputMsg_SelectAll>(routing_id_)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::CollapseSelection() { |
+ SendInput(base::MakeUnique<InputMsg_CollapseSelection>(routing_id_)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::SelectRange(const gfx::Point& point, |
+ const gfx::Point& extent) { |
+ SendInput(base::MakeUnique<InputMsg_SelectRange>(routing_id_, point, extent)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::AdjustSelectionByCharacterOffset(int32_t start, |
+ int32_t end) { |
+ SendInput(base::MakeUnique<InputMsg_AdjustSelectionByCharacterOffset>( |
+ routing_id_, start, end)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::MoveRangeSelectionExtent( |
+ const gfx::Point& extent) { |
+ SendInput( |
+ base::MakeUnique<InputMsg_MoveRangeSelectionExtent>(routing_id_, extent)); |
+} |
+ |
+void LegacyIPCFrameInputHandler::SendInput( |
+ std::unique_ptr<IPC::Message> message) { |
+ frame_host_->GetRenderWidgetHost()->input_router()->SendInput( |
+ std::move(message)); |
+} |
+ |
+} // namespace content |