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 c18d1273294100df05dd1827ba804b91051524ba..2695d2bf9030b13e7996a2707988afaab39fa38c 100644 |
--- a/content/renderer/text_input_client_observer.cc |
+++ b/content/renderer/text_input_client_observer.cc |
@@ -11,7 +11,8 @@ |
#include "build/build_config.h" |
#include "content/common/text_input_client_messages.h" |
#include "content/renderer/pepper/pepper_plugin_instance_impl.h" |
-#include "content/renderer/render_view_impl.h" |
+#include "content/renderer/render_widget.h" |
+#include "ipc/ipc_message.h" |
#include "third_party/WebKit/public/platform/WebPoint.h" |
#include "third_party/WebKit/public/platform/WebRect.h" |
#include "third_party/WebKit/public/platform/WebString.h" |
@@ -22,13 +23,10 @@ |
namespace content { |
-TextInputClientObserver::TextInputClientObserver(RenderViewImpl* render_view) |
-#if defined(ENABLE_PLUGINS) |
- : RenderViewObserver(render_view), render_view_impl_(render_view) { |
-#else |
- : RenderViewObserver(render_view) { |
-#endif |
-} |
+TextInputClientObserver::TextInputClientObserver( |
+ scoped_refptr<RenderWidget> render_widget, |
+ blink::WebView* web_view) |
+ : render_widget_(render_widget), web_view_(web_view) {} |
TextInputClientObserver::~TextInputClientObserver() { |
} |
@@ -48,24 +46,30 @@ bool TextInputClientObserver::OnMessageReceived(const IPC::Message& message) { |
return handled; |
} |
-void TextInputClientObserver::OnDestruct() { |
- delete this; |
+bool TextInputClientObserver::Send(IPC::Message* message) { |
+ DCHECK(render_widget_); |
+ return render_widget_->Send(message); |
} |
blink::WebView* TextInputClientObserver::webview() { |
- return render_view()->GetWebView(); |
+ return web_view_; |
+} |
+ |
+int32_t TextInputClientObserver::GetRoutingID() { |
+ DCHECK(render_widget_); |
+ return render_widget_->routing_id(); |
} |
void TextInputClientObserver::OnStringAtPoint(gfx::Point point) { |
#if defined(OS_MACOSX) |
blink::WebPoint baselinePoint; |
NSAttributedString* string = blink::WebSubstringUtil::attributedWordAtPoint( |
- webview(), point, baselinePoint); |
+ webview(), render_widget_->webwidget(), point, baselinePoint); |
std::unique_ptr<const mac::AttributedStringCoder::EncodedString> encoded( |
mac::AttributedStringCoder::Encode(string)); |
Send(new TextInputClientReplyMsg_GotStringAtPoint( |
- routing_id(), *encoded.get(), baselinePoint)); |
+ GetRoutingID(), *encoded.get(), baselinePoint)); |
#else |
NOTIMPLEMENTED(); |
#endif |
@@ -75,15 +79,15 @@ void TextInputClientObserver::OnCharacterIndexForPoint(gfx::Point point) { |
blink::WebPoint web_point(point); |
uint32_t index = static_cast<uint32_t>( |
webview()->focusedFrame()->characterIndexForPoint(web_point)); |
- Send(new TextInputClientReplyMsg_GotCharacterIndexForPoint(routing_id(), |
- index)); |
+ Send(new TextInputClientReplyMsg_GotCharacterIndexForPoint(GetRoutingID(), |
+ index)); |
} |
void TextInputClientObserver::OnFirstRectForCharacterRange(gfx::Range range) { |
gfx::Rect rect; |
#if defined(ENABLE_PLUGINS) |
- if (render_view_impl_->GetFocusedPepperPlugin()) { |
- rect = render_view_impl_->GetFocusedPepperPlugin()->GetCaretBounds(); |
+ if (render_widget_->focused_pepper_plugin()) { |
+ rect = render_widget_->focused_pepper_plugin()->GetCaretBounds(); |
} else |
#endif |
{ |
@@ -97,7 +101,7 @@ void TextInputClientObserver::OnFirstRectForCharacterRange(gfx::Range range) { |
rect = web_rect; |
} |
} |
- Send(new TextInputClientReplyMsg_GotFirstRectForRange(routing_id(), rect)); |
+ Send(new TextInputClientReplyMsg_GotFirstRectForRange(GetRoutingID(), rect)); |
} |
void TextInputClientObserver::OnStringForRange(gfx::Range range) { |
@@ -113,8 +117,8 @@ void TextInputClientObserver::OnStringForRange(gfx::Range range) { |
} |
std::unique_ptr<const mac::AttributedStringCoder::EncodedString> encoded( |
mac::AttributedStringCoder::Encode(string)); |
- Send(new TextInputClientReplyMsg_GotStringForRange(routing_id(), |
- *encoded.get(), baselinePoint)); |
+ Send(new TextInputClientReplyMsg_GotStringForRange( |
+ GetRoutingID(), *encoded.get(), baselinePoint)); |
#else |
NOTIMPLEMENTED(); |
#endif |