Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index 11a2f409b6d684a13fc35cf4c0a13289644923e6..95ee209dde7cf8ec9321d2227abf381f7d24766c 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -983,6 +983,7 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) { |
IPC_MESSAGE_HANDLER(ViewMsg_Paste, OnPaste) |
IPC_MESSAGE_HANDLER(ViewMsg_PasteAndMatchStyle, OnPasteAndMatchStyle) |
IPC_MESSAGE_HANDLER(ViewMsg_Replace, OnReplace) |
+ IPC_MESSAGE_HANDLER(ViewMsg_ReplaceMisspelling, OnReplaceMisspelling) |
IPC_MESSAGE_HANDLER(ViewMsg_Delete, OnDelete) |
IPC_MESSAGE_HANDLER(ViewMsg_SetName, OnSetName) |
IPC_MESSAGE_HANDLER(ViewMsg_SelectAll, OnSelectAll) |
@@ -1404,9 +1405,21 @@ void RenderViewImpl::OnReplace(const string16& text) { |
WebFrame* frame = webview()->focusedFrame(); |
if (!frame->hasSelection()) |
frame->selectWordAroundCaret(); |
+ |
frame->replaceSelection(text); |
} |
+void RenderViewImpl::OnReplaceMisspelling(const string16& text) { |
+ if (!webview()) |
+ return; |
+ |
+ WebFrame* frame = webview()->focusedFrame(); |
+ if (!frame->hasSelection()) |
+ return; |
+ |
+ frame->replaceMisspelledRange(text); |
+} |
+ |
void RenderViewImpl::OnDelete() { |
if (!webview()) |
return; |