| 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..adbf03fbbe3cc2713927fc2d94199c28f25d6e55 100644
|
| --- a/content/browser/renderer_host/text_input_manager.cc
|
| +++ b/content/browser/renderer_host/text_input_manager.cc
|
| @@ -316,4 +316,22 @@ 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();
|
| + DCHECK_LE(pos + n, text.length()) << "The text can not fully cover range.";
|
| + if (pos >= text.length()) {
|
| + DCHECK(false) << "The text can not cover range.";
|
| + return false;
|
| + }
|
| +
|
| + selected_text->clear();
|
| + selected_text->append(text.substr(pos, n));
|
| + return true;
|
| +}
|
| +
|
| } // namespace content
|
|
|