Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 7c8342b37ed80245abf6df3f998ed5746c91cdad..7cc6087e3d5dcdb6fcc77dac18f17fe998ef12eb 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -577,6 +577,8 @@ bool RenderFrameImpl::OnMessageReceived(const IPC::Message& msg) { |
IPC_MESSAGE_HANDLER(InputMsg_SelectAll, OnSelectAll) |
IPC_MESSAGE_HANDLER(InputMsg_SelectRange, OnSelectRange) |
IPC_MESSAGE_HANDLER(InputMsg_Unselect, OnUnselect) |
+ IPC_MESSAGE_HANDLER(InputMsg_Replace, OnReplace) |
+ IPC_MESSAGE_HANDLER(InputMsg_ReplaceMisspelling, OnReplaceMisspelling) |
IPC_MESSAGE_HANDLER(FrameMsg_CSSInsertRequest, OnCSSInsertRequest) |
IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequest, |
OnJavaScriptExecuteRequest) |
@@ -993,6 +995,20 @@ void RenderFrameImpl::OnUnselect() { |
frame_->executeCommand(WebString::fromUTF8("Unselect"), GetFocusedElement()); |
} |
+void RenderFrameImpl::OnReplace(const base::string16& text) { |
+ if (!frame_->hasSelection()) |
+ frame_->selectWordAroundCaret(); |
+ |
+ frame_->replaceSelection(text); |
+} |
+ |
+void RenderFrameImpl::OnReplaceMisspelling(const base::string16& text) { |
+ if (!frame_->hasSelection()) |
+ return; |
+ |
+ frame_->replaceMisspelledRange(text); |
+} |
+ |
void RenderFrameImpl::OnCSSInsertRequest(const std::string& css) { |
frame_->document().insertStyleSheet(WebString::fromUTF8(css)); |
} |