Fix build break.

TBR=joshia


git-svn-id: svn://svn.chromium.org/chrome/trunk/src@965 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc
index e580aa36..1bae14d 100644
--- a/chrome/browser/automation/automation_provider.cc
+++ b/chrome/browser/automation/automation_provider.cc
@@ -44,6 +44,7 @@
 #include "chrome/browser/login_prompt.h"
 #include "chrome/browser/navigation_entry.h"
 #include "chrome/browser/printing/print_job.h"
+#include "chrome/browser/render_view_host.h"
 #include "chrome/browser/save_package.h"
 #include "chrome/browser/ssl_blocking_page.h"
 #include "chrome/browser/web_contents.h"
@@ -766,6 +767,8 @@
                         GetConstrainedWindowBounds)
     IPC_MESSAGE_HANDLER(AutomationMsg_OpenFindInPageRequest,
                         HandleOpenFindInPageRequest)
+    IPC_MESSAGE_HANDLER(AutomationMsg_PostMessage,
+                        OnPostMessage)
   IPC_END_MESSAGE_MAP()
 }
 
@@ -2197,6 +2200,36 @@
       message.routing_id(), success, query_in_progress));
 }
 
+void AutomationProvider::OnPostMessage(int handle,
+                                       const std::string& target,
+                                       const std::string& message) {
+  if (tab_tracker_->ContainsHandle(handle)) {
+    NavigationController* tab = tab_tracker_->GetResource(handle);
+    if (!tab) {
+      NOTREACHED();
+      return;
+    }
+    TabContents* tab_contents = tab->GetTabContents(TAB_CONTENTS_WEB);
+    if (!tab_contents) {
+      NOTREACHED();
+      return;
+    }
+
+    WebContents* web_contents = tab_contents->AsWebContents();
+    if (!web_contents) {
+      NOTREACHED();
+      return;
+    }
+
+    RenderViewHost* view_host = web_contents->render_view_host();
+    if (!view_host) {
+      return;
+    }
+
+    view_host->PostMessage(target, message);
+  }
+}
+
 TestingAutomationProvider::TestingAutomationProvider(Profile* profile)
     : AutomationProvider(profile) {
   BrowserList::AddObserver(this);