| Index: content/browser/renderer_host/text_input_manager.cc
|
| diff --git a/content/browser/renderer_host/text_input_manager.cc b/content/browser/renderer_host/text_input_manager.cc
|
| index aa2522f91ca74f1272bd1cbd63eff233b51f6607..7c46df06f69587fbac6b444a401b51cde1e11bb5 100644
|
| --- a/content/browser/renderer_host/text_input_manager.cc
|
| +++ b/content/browser/renderer_host/text_input_manager.cc
|
| @@ -316,4 +316,28 @@ TextInputManager::TextSelection::TextSelection(const TextSelection& other) =
|
|
|
| TextInputManager::TextSelection::~TextSelection() {}
|
|
|
| +bool TextInputManager::TextSelection::GetSelectedText(
|
| + base::string16* selected_text) const {
|
| + if (text.empty() || range.is_empty())
|
| + return false;
|
| +
|
| + size_t pos = range.GetMin() - offset;
|
| + size_t n = range.length();
|
| + if (pos + n > text.length()) {
|
| + LOG(WARNING) << "The text can not fully cover range (selection's end point "
|
| + "exceeds text length).";
|
| + return false;
|
| + }
|
| +
|
| + if (pos >= text.length()) {
|
| + LOG(WARNING) << "The text ca not cover range (selection range's starting "
|
| + "point exceeds text length).";
|
| + return false;
|
| + }
|
| +
|
| + selected_text->clear();
|
| + selected_text->append(text.substr(pos, n));
|
| + return true;
|
| +}
|
| +
|
| } // namespace content
|
|
|