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 71bb40386e9255bb42b6de53c2b5a04b716759ab..d233f4fe1995d13f212543e96fe2a897409d662e 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm |
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm |
@@ -29,6 +29,8 @@ |
#import "content/browser/accessibility/browser_accessibility_cocoa.h" |
#include "content/browser/accessibility/browser_accessibility_manager_mac.h" |
#include "content/browser/bad_message.h" |
+#include "content/browser/browser_plugin/browser_plugin_embedder.h" |
+#include "content/browser/browser_plugin/browser_plugin_guest.h" |
#import "content/browser/cocoa/system_hotkey_helper_mac.h" |
#import "content/browser/cocoa/system_hotkey_map.h" |
#include "content/browser/compositor/resize_lock.h" |
@@ -41,6 +43,7 @@ |
#import "content/browser/renderer_host/render_widget_host_view_mac_dictionary_helper.h" |
#import "content/browser/renderer_host/render_widget_host_view_mac_editcommand_helper.h" |
#import "content/browser/renderer_host/text_input_client_mac.h" |
+#include "content/browser/web_contents/web_contents_impl.h" |
#include "content/common/accessibility_messages.h" |
#include "content/common/edit_command.h" |
#include "content/common/gpu/gpu_messages.h" |
@@ -92,6 +95,7 @@ using content::RenderWidgetHostViewMac; |
using content::RenderWidgetHostViewMacEditCommandHelper; |
using content::TextInputClientMac; |
using content::WebContents; |
+using content::WebContentsImpl; |
using blink::WebInputEvent; |
using blink::WebInputEventFactory; |
using blink::WebMouseEvent; |
@@ -107,6 +111,21 @@ BOOL EventIsReservedBySystem(NSEvent* event) { |
return helper->map()->IsEventReserved(event); |
} |
+RenderWidgetHostViewMac* GetRenderWidgetHostViewToUse( |
+ RenderWidgetHostViewMac* render_widget_host_view) { |
+ WebContentsImpl* contents = |
+ static_cast<WebContentsImpl*>(render_widget_host_view->GetWebContents()); |
raymes
2015/03/30 23:02:03
Fady: WebContentsImpl* can't be referenced from he
Fady Samuel
2015/03/31 15:40:22
How about adding GetFullPageGuest(embedder) to Bro
|
+ content::BrowserPluginEmbedder* embedder = |
+ contents->GetBrowserPluginEmbedder(); |
+ if (!embedder) |
+ return render_widget_host_view; |
+ content::BrowserPluginGuest* guest = embedder->GetFullPageGuest(); |
Fady Samuel
2015/03/31 15:40:22
How about adding GetFullPageGuest(embedder) to Bro
|
+ if (!guest) |
+ return render_widget_host_view; |
+ return static_cast<RenderWidgetHostViewMac*>( |
+ guest->GetWebContents()->GetRenderWidgetHostView()); |
+} |
+ |
} // namespace |
// These are not documented, so use only after checking -respondsToSelector:. |
@@ -3283,11 +3302,11 @@ extern NSString *NSTextInputReplacementRangeAttributeName; |
} |
- (void)startSpeaking:(id)sender { |
- renderWidgetHostView_->SpeakSelection(); |
+ GetRenderWidgetHostViewToUse(renderWidgetHostView_.get())->SpeakSelection(); |
} |
- (void)stopSpeaking:(id)sender { |
- renderWidgetHostView_->StopSpeaking(); |
+ GetRenderWidgetHostViewToUse(renderWidgetHostView_.get())->StopSpeaking(); |
} |
- (void)cancelComposition { |