| Index: content/renderer/text_input_client_observer.cc
|
| diff --git a/content/renderer/text_input_client_observer.cc b/content/renderer/text_input_client_observer.cc
|
| index 5ce95ff6093742ac828679019e22a9cbee097912..0211454c96ab62375d370672eccb16224c51b2fa 100644
|
| --- a/content/renderer/text_input_client_observer.cc
|
| +++ b/content/renderer/text_input_client_observer.cc
|
| @@ -29,6 +29,8 @@ TextInputClientObserver::~TextInputClientObserver() {
|
| bool TextInputClientObserver::OnMessageReceived(const IPC::Message& message) {
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(TextInputClientObserver, message)
|
| + IPC_MESSAGE_HANDLER(TextInputClientMsg_StringAtPoint,
|
| + OnStringAtPoint)
|
| IPC_MESSAGE_HANDLER(TextInputClientMsg_CharacterIndexForPoint,
|
| OnCharacterIndexForPoint)
|
| IPC_MESSAGE_HANDLER(TextInputClientMsg_FirstRectForCharacterRange,
|
| @@ -43,6 +45,21 @@ blink::WebView* TextInputClientObserver::webview() {
|
| return render_view()->GetWebView();
|
| }
|
|
|
| +void TextInputClientObserver::OnStringAtPoint(gfx::Point point) {
|
| +#if defined(OS_MACOSX)
|
| + blink::WebPoint baselinePoint;
|
| + NSAttributedString* string = blink::WebSubstringUtil::attributedWordAtPoint(
|
| + webview(), point, baselinePoint);
|
| +
|
| + scoped_ptr<const mac::AttributedStringCoder::EncodedString> encoded(
|
| + mac::AttributedStringCoder::Encode(string));
|
| + Send(new TextInputClientReplyMsg_GotStringAtPoint(
|
| + routing_id(), *encoded.get(), baselinePoint));
|
| +#else
|
| + NOTIMPLEMENTED();
|
| +#endif
|
| +}
|
| +
|
| void TextInputClientObserver::OnCharacterIndexForPoint(gfx::Point point) {
|
| blink::WebPoint web_point(point);
|
| size_t index = webview()->focusedFrame()->characterIndexForPoint(web_point);
|
|
|