| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/test_runner/text_input_controller.h" | 5 #include "components/test_runner/text_input_controller.h" |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "components/test_runner/web_test_proxy.h" | 8 #include "components/test_runner/web_test_proxy.h" |
| 9 #include "gin/arguments.h" | 9 #include "gin/arguments.h" |
| 10 #include "gin/handle.h" | 10 #include "gin/handle.h" |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 | 159 |
| 160 void TextInputController::InsertText(const std::string& text) { | 160 void TextInputController::InsertText(const std::string& text) { |
| 161 view()->confirmComposition(blink::WebString::fromUTF8(text)); | 161 view()->confirmComposition(blink::WebString::fromUTF8(text)); |
| 162 } | 162 } |
| 163 | 163 |
| 164 void TextInputController::UnmarkText() { | 164 void TextInputController::UnmarkText() { |
| 165 view()->confirmComposition(); | 165 view()->confirmComposition(); |
| 166 } | 166 } |
| 167 | 167 |
| 168 void TextInputController::DoCommand(const std::string& text) { | 168 void TextInputController::DoCommand(const std::string& text) { |
| 169 if (view()->mainFrame()) | 169 if (view()->mainFrame()) { |
| 170 view()->mainFrame()->executeCommand(blink::WebString::fromUTF8(text)); | 170 if (!view()->mainFrame()->toWebLocalFrame()) { |
| 171 CHECK(false) << "This function cannot be called if the main frame is not" |
| 172 "a local frame."; |
| 173 } |
| 174 view()->mainFrame()->toWebLocalFrame()->executeCommand( |
| 175 blink::WebString::fromUTF8(text)); |
| 176 } |
| 171 } | 177 } |
| 172 | 178 |
| 173 void TextInputController::SetMarkedText(const std::string& text, | 179 void TextInputController::SetMarkedText(const std::string& text, |
| 174 int start, | 180 int start, |
| 175 int length) { | 181 int length) { |
| 176 blink::WebString web_text(blink::WebString::fromUTF8(text)); | 182 blink::WebString web_text(blink::WebString::fromUTF8(text)); |
| 177 | 183 |
| 178 // Split underline into up to 3 elements (before, selection, and after). | 184 // Split underline into up to 3 elements (before, selection, and after). |
| 179 std::vector<blink::WebCompositionUnderline> underlines; | 185 std::vector<blink::WebCompositionUnderline> underlines; |
| 180 blink::WebCompositionUnderline underline; | 186 blink::WebCompositionUnderline underline; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 192 underline.startOffset = underline.endOffset; | 198 underline.startOffset = underline.endOffset; |
| 193 underline.endOffset = web_text.length(); | 199 underline.endOffset = web_text.length(); |
| 194 underline.thick = false; | 200 underline.thick = false; |
| 195 underlines.push_back(underline); | 201 underlines.push_back(underline); |
| 196 } | 202 } |
| 197 | 203 |
| 198 view()->setComposition(web_text, underlines, start, start + length); | 204 view()->setComposition(web_text, underlines, start, start + length); |
| 199 } | 205 } |
| 200 | 206 |
| 201 bool TextInputController::HasMarkedText() { | 207 bool TextInputController::HasMarkedText() { |
| 202 return view()->mainFrame() && view()->mainFrame()->hasMarkedText(); | 208 if (!view()->mainFrame()) |
| 209 return false; |
| 210 |
| 211 if (!view()->mainFrame()->toWebLocalFrame()) { |
| 212 CHECK(false) << "This function cannot be called if the main frame is not" |
| 213 "a local frame."; |
| 214 } |
| 215 |
| 216 return view()->mainFrame()->toWebLocalFrame()->hasMarkedText(); |
| 203 } | 217 } |
| 204 | 218 |
| 205 std::vector<int> TextInputController::MarkedRange() { | 219 std::vector<int> TextInputController::MarkedRange() { |
| 206 if (!view()->mainFrame()) | 220 if (!view()->mainFrame()) |
| 207 return std::vector<int>(); | 221 return std::vector<int>(); |
| 208 | 222 |
| 209 blink::WebRange range = view()->mainFrame()->markedRange(); | 223 if (!view()->mainFrame()->toWebLocalFrame()) { |
| 224 CHECK(false) << "This function cannot be called if the main frame is not" |
| 225 "a local frame."; |
| 226 } |
| 227 |
| 228 blink::WebRange range = view()->mainFrame()->toWebLocalFrame()->markedRange(); |
| 210 std::vector<int> int_array(2); | 229 std::vector<int> int_array(2); |
| 211 int_array[0] = range.startOffset(); | 230 int_array[0] = range.startOffset(); |
| 212 int_array[1] = range.endOffset(); | 231 int_array[1] = range.endOffset(); |
| 213 | 232 |
| 214 return int_array; | 233 return int_array; |
| 215 } | 234 } |
| 216 | 235 |
| 217 std::vector<int> TextInputController::SelectedRange() { | 236 std::vector<int> TextInputController::SelectedRange() { |
| 218 if (!view()->mainFrame()) | 237 if (!view()->mainFrame()) |
| 219 return std::vector<int>(); | 238 return std::vector<int>(); |
| 220 | 239 |
| 221 blink::WebRange range = view()->mainFrame()->selectionRange(); | 240 if (!view()->mainFrame()->toWebLocalFrame()) { |
| 241 CHECK(false) << "This function cannot be called if the main frame is not" |
| 242 "a local frame."; |
| 243 } |
| 244 |
| 245 blink::WebRange range = |
| 246 view()->mainFrame()->toWebLocalFrame()->selectionRange(); |
| 222 if (range.isNull()) | 247 if (range.isNull()) |
| 223 return std::vector<int>(); | 248 return std::vector<int>(); |
| 224 std::vector<int> int_array(2); | 249 std::vector<int> int_array(2); |
| 225 int_array[0] = range.startOffset(); | 250 int_array[0] = range.startOffset(); |
| 226 int_array[1] = range.endOffset(); | 251 int_array[1] = range.endOffset(); |
| 227 | 252 |
| 228 return int_array; | 253 return int_array; |
| 229 } | 254 } |
| 230 | 255 |
| 231 std::vector<int> TextInputController::FirstRectForCharacterRange( | 256 std::vector<int> TextInputController::FirstRectForCharacterRange( |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 264 blink::WebString::fromUTF8(text), | 289 blink::WebString::fromUTF8(text), |
| 265 blink::WebVector<blink::WebCompositionUnderline>(underlines), | 290 blink::WebVector<blink::WebCompositionUnderline>(underlines), |
| 266 text.length(), text.length()); | 291 text.length(), text.length()); |
| 267 } | 292 } |
| 268 | 293 |
| 269 blink::WebView* TextInputController::view() { | 294 blink::WebView* TextInputController::view() { |
| 270 return web_test_proxy_base_->web_view(); | 295 return web_test_proxy_base_->web_view(); |
| 271 } | 296 } |
| 272 | 297 |
| 273 } // namespace test_runner | 298 } // namespace test_runner |
| OLD | NEW |