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 25e41f51adf7ed..87f9f7c3e8d83e 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm @@ -3351,6 +3351,20 @@ - (void)pasteAndMatchStyle:(id)sender { } } +- (void)selectAll:(id)sender { + // editCommand_helper_ adds implementations for most NSResponder methods + // dynamically. But the renderer side only sends selection results back to + // the browser if they were triggered by a keyboard event or went through + // one of the Select methods on RWH. Since selectAll: is called from the + // menu handler, neither is true. + // Explicitly call SelectAll() here to make sure the renderer returns + // selection results. + if (renderWidgetHostView_->render_widget_host_->IsRenderView()) { + static_cast( + renderWidgetHostView_->render_widget_host_)->SelectAll(); + } +} + - (void)startSpeaking:(id)sender { renderWidgetHostView_->SpeakSelection(); }