Index: content/browser/browser_plugin/browser_plugin_embedder.cc |
diff --git a/content/browser/browser_plugin/browser_plugin_embedder.cc b/content/browser/browser_plugin/browser_plugin_embedder.cc |
index 6e0a3d4f5430daa81e96468abd3b53d619cc4a6d..fc54c87de9f09b196f67ff6aeb2ea72e4daa73e5 100644 |
--- a/content/browser/browser_plugin/browser_plugin_embedder.cc |
+++ b/content/browser/browser_plugin/browser_plugin_embedder.cc |
@@ -13,6 +13,7 @@ |
#include "content/public/browser/browser_plugin_guest_manager.h" |
#include "content/public/browser/native_web_keyboard_event.h" |
#include "content/public/browser/render_view_host.h" |
+#include "third_party/WebKit/public/web/WebFindOptions.h" |
#include "ui/events/keycodes/keyboard_codes.h" |
namespace content { |
@@ -186,6 +187,23 @@ bool BrowserPluginEmbedder::HandleKeyboardEvent( |
return event_consumed; |
} |
+bool BrowserPluginEmbedder::Find(int request_id, |
+ const base::string16& search_text, |
+ const blink::WebFindOptions& options) { |
+ return GetBrowserPluginGuestManager()->ForEachGuest( |
+ web_contents(), |
+ base::Bind(&BrowserPluginEmbedder::FindInGuest, |
+ request_id, |
+ search_text, |
+ options)); |
+} |
+ |
+bool BrowserPluginEmbedder::StopFinding(StopFindAction action) { |
+ return GetBrowserPluginGuestManager()->ForEachGuest( |
+ web_contents(), |
+ base::Bind(&BrowserPluginEmbedder::StopFindingInGuest, action)); |
+} |
+ |
BrowserPluginGuest* BrowserPluginEmbedder::GetFullPageGuest() { |
WebContentsImpl* guest_contents = static_cast<WebContentsImpl*>( |
GetBrowserPluginGuestManager()->GetFullPageGuest(web_contents())); |
@@ -217,4 +235,32 @@ bool BrowserPluginEmbedder::UnlockMouseIfNecessaryCallback(bool* mouse_unlocked, |
return false; |
} |
+// static |
+bool BrowserPluginEmbedder::FindInGuest(int request_id, |
+ const base::string16& search_text, |
+ const blink::WebFindOptions& options, |
+ WebContents* guest) { |
+ if (static_cast<WebContentsImpl*>(guest) |
+ ->GetBrowserPluginGuest() |
+ ->HandleFindForEmbedder(request_id, search_text, options)) { |
+ // There can only ever currently be one browser plugin that handles find so |
+ // we can break the iteration at this point. |
+ return true; |
+ } |
+ return false; |
+} |
+ |
+// static |
+bool BrowserPluginEmbedder::StopFindingInGuest(StopFindAction action, |
+ WebContents* guest) { |
+ if (static_cast<WebContentsImpl*>(guest) |
+ ->GetBrowserPluginGuest() |
+ ->HandleStopFindingForEmbedder(action)) { |
+ // There can only ever currently be one browser plugin that handles find so |
+ // we can break the iteration at this point. |
+ return true; |
+ } |
+ return false; |
+} |
+ |
} // namespace content |