| Index: content/browser/renderer_host/render_widget_host_view_aura.cc
|
| diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
|
| index 6467e701bf5dea13360764139ee008f17a50d8ca..33fc7e764fdcb302ab1b89d125f379352c057e96 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
|
| @@ -1041,12 +1041,20 @@ void RenderWidgetHostViewAura::SelectionChanged(const base::string16& text,
|
| #if defined(USE_X11) && !defined(OS_CHROMEOS)
|
| if (text.empty() || range.is_empty())
|
| return;
|
| + size_t pos = range.GetMin() - offset;
|
| + size_t n = range.length();
|
| +
|
| + DCHECK(pos + n <= text.length()) << "The text can not fully cover range.";
|
| + if (pos >= text.length()) {
|
| + NOTREACHED() << "The text can not cover range.";
|
| + return;
|
| + }
|
|
|
| // Set the CLIPBOARD_TYPE_SELECTION to the ui::Clipboard.
|
| ui::ScopedClipboardWriter clipboard_writer(
|
| ui::Clipboard::GetForCurrentThread(),
|
| ui::CLIPBOARD_TYPE_SELECTION);
|
| - clipboard_writer.WriteText(text);
|
| + clipboard_writer.WriteText(text.substr(pos, n));
|
| #endif // defined(USE_X11) && !defined(OS_CHROMEOS)
|
| }
|
|
|
|
|