Index: content/browser/renderer_host/render_widget_host_view_mac.mm |
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm |
index dce9a5eb1710d8043513812c5f27338d1d4be664..648c42453fc5854179b819ce1f7dacf0224c4f96 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm |
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm |
@@ -470,7 +470,6 @@ RenderWidgetHostViewMac::RenderWidgetHostViewMac(RenderWidgetHost* widget) |
// |GetNativeView()| into the view hierarchy right after calling us. |
cocoa_view_ = [[[RenderWidgetHostViewCocoa alloc] |
initWithRenderWidgetHostViewMac:this] autorelease]; |
- |
Alexei Svitkine (slow)
2014/06/25 13:58:29
Nit: Revert this whitespace change.
|
background_layer_.reset([[CALayer alloc] init]); |
[background_layer_ |
setBackgroundColor:CGColorGetConstantColor(kCGColorWhite)]; |
@@ -634,6 +633,8 @@ bool RenderWidgetHostViewMac::OnMessageReceived(const IPC::Message& message) { |
IPC_BEGIN_MESSAGE_MAP(RenderWidgetHostViewMac, message) |
IPC_MESSAGE_HANDLER(ViewHostMsg_PluginFocusChanged, OnPluginFocusChanged) |
IPC_MESSAGE_HANDLER(ViewHostMsg_StartPluginIme, OnStartPluginIme) |
+ IPC_MESSAGE_HANDLER(ViewMsg_GetRenderedTextCompleted, |
+ OnGetRenderedTextCompleted) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
return handled; |
@@ -1060,6 +1061,12 @@ bool RenderWidgetHostViewMac::SupportsSpeech() const { |
} |
void RenderWidgetHostViewMac::SpeakSelection() { |
+ if (selected_text_.empty() && render_widget_host_) { |
+ // Route an IPC message to get content as text for a web contents. |
Alexei Svitkine (slow)
2014/06/25 13:58:29
Nit: Indent 2 less.
|
+ render_widget_host_->Send(new ViewMsg_GetRenderedText( |
+ render_widget_host_->GetRoutingID())); |
+ return; |
+ } |
if ([NSApp respondsToSelector:@selector(speakString:)]) |
Alexei Svitkine (slow)
2014/06/25 13:58:29
Nit: Do an early return at the top of the function
|
[NSApp speakString:base::SysUTF8ToNSString(selected_text_)]; |
} |
@@ -2051,6 +2058,16 @@ void RenderWidgetHostViewMac::OnStartPluginIme() { |
[cocoa_view_ setPluginImeActive:YES]; |
} |
+void RenderWidgetHostViewMac::OnGetRenderedTextCompleted( |
+ const std::string& text) { |
+ // Let TTS speak the text returned from call back |
+ if (text.empty()) |
+ return; |
+ |
+ if ([NSApp respondsToSelector:@selector(speakString:)]) |
+ [NSApp speakString:base::SysUTF8ToNSString(text)]; |
+} |
+ |
gfx::Rect RenderWidgetHostViewMac::GetScaledOpenGLPixelRect( |
const gfx::Rect& rect) { |
gfx::Rect src_gl_subrect = rect; |
@@ -2279,7 +2296,6 @@ void RenderWidgetHostViewMac::AcceleratedLayerDidDrawFrame(bool succeeded) { |
focusedPluginIdentifier_ = -1; |
renderWidgetHostView_->backing_store_scale_factor_ = |
ui::GetScaleFactorForNativeView(self); |
- |
Alexei Svitkine (slow)
2014/06/25 13:58:29
Nit: Revert this whitespace change.
|
// OpenGL support: |
if ([self respondsToSelector: |
@selector(setWantsBestResolutionOpenGLSurface:)]) { |