OLD | NEW |
(Empty) | |
| 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 |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "content/browser/frame_host/input/legacy_ipc_frame_input_handler.h" |
| 6 |
| 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "content/browser/renderer_host/render_widget_host_impl.h" |
| 9 #include "content/common/input_messages.h" |
| 10 |
| 11 namespace content { |
| 12 |
| 13 LegacyIPCFrameInputHandler::LegacyIPCFrameInputHandler( |
| 14 RenderFrameHostImpl* frame_host, |
| 15 int routing_id) |
| 16 : frame_host_(frame_host), routing_id_(routing_id) { |
| 17 DCHECK(frame_host); |
| 18 } |
| 19 |
| 20 LegacyIPCFrameInputHandler::~LegacyIPCFrameInputHandler() {} |
| 21 |
| 22 void LegacyIPCFrameInputHandler::SetCompositionFromExistingText( |
| 23 int32_t start, |
| 24 int32_t end, |
| 25 const std::vector<ui::CompositionUnderline>& ui_underlines) { |
| 26 std::vector<blink::WebCompositionUnderline> underlines; |
| 27 for (const auto& underline : ui_underlines) { |
| 28 blink::WebCompositionUnderline blink_underline( |
| 29 underline.start_offset, underline.end_offset, underline.color, |
| 30 underline.thick, underline.background_color); |
| 31 underlines.push_back(blink_underline); |
| 32 } |
| 33 |
| 34 SendInput(base::MakeUnique<InputMsg_SetCompositionFromExistingText>( |
| 35 routing_id_, start, end, underlines)); |
| 36 } |
| 37 |
| 38 void LegacyIPCFrameInputHandler::ExtendSelectionAndDelete(int32_t before, |
| 39 int32_t after) { |
| 40 SendInput(base::MakeUnique<InputMsg_ExtendSelectionAndDelete>(routing_id_, |
| 41 before, after)); |
| 42 } |
| 43 |
| 44 void LegacyIPCFrameInputHandler::DeleteSurroundingText(int32_t before, |
| 45 int32_t after) { |
| 46 SendInput(base::MakeUnique<InputMsg_DeleteSurroundingText>(routing_id_, |
| 47 before, after)); |
| 48 } |
| 49 |
| 50 void LegacyIPCFrameInputHandler::DeleteSurroundingTextInCodePoints( |
| 51 int32_t before, |
| 52 int32_t after) { |
| 53 SendInput(base::MakeUnique<InputMsg_DeleteSurroundingTextInCodePoints>( |
| 54 routing_id_, before, after)); |
| 55 } |
| 56 |
| 57 void LegacyIPCFrameInputHandler::SetEditableSelectionOffsets(int32_t start, |
| 58 int32_t end) { |
| 59 SendInput(base::MakeUnique<InputMsg_SetEditableSelectionOffsets>(routing_id_, |
| 60 start, end)); |
| 61 } |
| 62 |
| 63 void LegacyIPCFrameInputHandler::ExecuteEditCommand( |
| 64 const std::string& command, |
| 65 const base::Optional<base::string16>& value) { |
| 66 if (!value) { |
| 67 SendInput(base::MakeUnique<InputMsg_ExecuteNoValueEditCommand>(routing_id_, |
| 68 command)); |
| 69 } |
| 70 } |
| 71 |
| 72 void LegacyIPCFrameInputHandler::Undo() { |
| 73 SendInput(base::MakeUnique<InputMsg_Undo>(routing_id_)); |
| 74 } |
| 75 |
| 76 void LegacyIPCFrameInputHandler::Redo() { |
| 77 SendInput(base::MakeUnique<InputMsg_Redo>(routing_id_)); |
| 78 } |
| 79 |
| 80 void LegacyIPCFrameInputHandler::Cut() { |
| 81 SendInput(base::MakeUnique<InputMsg_Cut>(routing_id_)); |
| 82 } |
| 83 |
| 84 void LegacyIPCFrameInputHandler::Copy() { |
| 85 SendInput(base::MakeUnique<InputMsg_Copy>(routing_id_)); |
| 86 } |
| 87 |
| 88 void LegacyIPCFrameInputHandler::CopyToFindPboard() { |
| 89 #if defined(OS_MACOSX) |
| 90 SendInput(base::MakeUnique<InputMsg_CopyToFindPboard>(routing_id_)); |
| 91 #endif |
| 92 } |
| 93 |
| 94 void LegacyIPCFrameInputHandler::Paste() { |
| 95 SendInput(base::MakeUnique<InputMsg_Paste>(routing_id_)); |
| 96 } |
| 97 |
| 98 void LegacyIPCFrameInputHandler::PasteAndMatchStyle() { |
| 99 SendInput(base::MakeUnique<InputMsg_PasteAndMatchStyle>(routing_id_)); |
| 100 } |
| 101 |
| 102 void LegacyIPCFrameInputHandler::Replace(const base::string16& word) { |
| 103 SendInput(base::MakeUnique<InputMsg_Replace>(routing_id_, word)); |
| 104 } |
| 105 |
| 106 void LegacyIPCFrameInputHandler::ReplaceMisspelling( |
| 107 const base::string16& word) { |
| 108 SendInput(base::MakeUnique<InputMsg_ReplaceMisspelling>(routing_id_, word)); |
| 109 } |
| 110 |
| 111 void LegacyIPCFrameInputHandler::Delete() { |
| 112 SendInput(base::MakeUnique<InputMsg_Delete>(routing_id_)); |
| 113 } |
| 114 |
| 115 void LegacyIPCFrameInputHandler::SelectAll() { |
| 116 SendInput(base::MakeUnique<InputMsg_SelectAll>(routing_id_)); |
| 117 } |
| 118 |
| 119 void LegacyIPCFrameInputHandler::CollapseSelection() { |
| 120 SendInput(base::MakeUnique<InputMsg_CollapseSelection>(routing_id_)); |
| 121 } |
| 122 |
| 123 void LegacyIPCFrameInputHandler::SelectRange(const gfx::Point& point, |
| 124 const gfx::Point& extent) { |
| 125 SendInput(base::MakeUnique<InputMsg_SelectRange>(routing_id_, point, extent)); |
| 126 } |
| 127 |
| 128 void LegacyIPCFrameInputHandler::AdjustSelectionByCharacterOffset(int32_t start, |
| 129 int32_t end) { |
| 130 SendInput(base::MakeUnique<InputMsg_AdjustSelectionByCharacterOffset>( |
| 131 routing_id_, start, end)); |
| 132 } |
| 133 |
| 134 void LegacyIPCFrameInputHandler::MoveRangeSelectionExtent( |
| 135 const gfx::Point& extent) { |
| 136 SendInput( |
| 137 base::MakeUnique<InputMsg_MoveRangeSelectionExtent>(routing_id_, extent)); |
| 138 } |
| 139 |
| 140 void LegacyIPCFrameInputHandler::SendInput( |
| 141 std::unique_ptr<IPC::Message> message) { |
| 142 frame_host_->GetRenderWidgetHost()->input_router()->SendInput( |
| 143 std::move(message)); |
| 144 } |
| 145 |
| 146 } // namespace content |
OLD | NEW |