Index: components/arc/ime/arc_ime_bridge_impl.cc |
diff --git a/components/arc/ime/arc_ime_bridge_impl.cc b/components/arc/ime/arc_ime_bridge_impl.cc |
index 6b375d9c49776d18d7362f0ed758f568ef8ef255..b575a4a8df12c368442f7f795873046eb2cc7b6c 100644 |
--- a/components/arc/ime/arc_ime_bridge_impl.cc |
+++ b/components/arc/ime/arc_ime_bridge_impl.cc |
@@ -15,6 +15,7 @@ namespace arc { |
namespace { |
constexpr int kMinVersionForOnKeyboardsBoundsChanging = 3; |
+constexpr int kMinVersionForExtendSelectionAndDelete = 4; |
ui::TextInputType ConvertTextInputType(arc::mojom::TextInputType ipc_type) { |
// The two enum types are similar, but intentionally made not identical. |
@@ -135,6 +136,22 @@ void ArcImeBridgeImpl::SendOnKeyboardBoundsChanging( |
ime_instance->OnKeyboardBoundsChanging(new_bounds); |
} |
+void ArcImeBridgeImpl::SendExtendSelectionAndDelete( |
+ size_t before, size_t after) { |
+ mojom::ImeInstance* ime_instance = bridge_service_->ime_instance(); |
+ if (!ime_instance) { |
+ LOG(ERROR) << "ArcImeInstance method called before being ready."; |
+ return; |
+ } |
+ if (bridge_service_->ime_version() < |
+ kMinVersionForExtendSelectionAndDelete) { |
+ LOG(ERROR) << "ArcImeInstance is too old for ExtendSelectionAndDelete."; |
+ return; |
+ } |
+ |
+ ime_instance->ExtendSelectionAndDelete(before, after); |
+} |
+ |
void ArcImeBridgeImpl::OnTextInputTypeChanged(arc::mojom::TextInputType type) { |
delegate_->OnTextInputTypeChanged(ConvertTextInputType(type)); |
} |