Index: content/public/browser/render_view_host.h |
diff --git a/content/public/browser/render_view_host.h b/content/public/browser/render_view_host.h |
index 659737635acf9c0bdf62430e3adb28161420091b..9c0ec2c6651cffa05c785a84e3866b8514317474 100644 |
--- a/content/public/browser/render_view_host.h |
+++ b/content/public/browser/render_view_host.h |
@@ -5,7 +5,7 @@ |
#ifndef CONTENT_PUBLIC_BROWSER_RENDER_VIEW_HOST_H_ |
#define CONTENT_PUBLIC_BROWSER_RENDER_VIEW_HOST_H_ |
-#include "base/values.h" |
+#include "base/callback_forward.h" |
#include "content/common/content_export.h" |
#include "content/public/browser/render_widget_host.h" |
#include "content/public/common/page_zoom.h" |
@@ -16,14 +16,14 @@ class FilePath; |
class GURL; |
struct WebDropData; |
-namespace webkit_glue { |
-struct WebPreferences; |
-} |
- |
namespace gfx { |
class Point; |
} |
+namespace base { |
+class Value; |
+} |
+ |
namespace ui { |
struct SelectedFileInfo; |
} |
@@ -34,6 +34,10 @@ struct WebMediaPlayerAction; |
struct WebPluginAction; |
} |
+namespace webkit_glue { |
+struct WebPreferences; |
+} |
+ |
namespace content { |
class ChildProcessSecurityPolicy; |
@@ -56,6 +60,8 @@ struct CustomContextMenuContext; |
// WebContents (see WebContents for an example) but also as views, etc. |
class CONTENT_EXPORT RenderViewHost : virtual public RenderWidgetHost { |
public: |
+ typedef base::Callback<void(const base::Value*)> JavascriptResultCallback; |
+ |
// Returns the RenderViewHost given its ID and the ID of its render process. |
// Returns NULL if the IDs do not correspond to a live RenderViewHost. |
static RenderViewHost* FromID(int render_process_id, int render_view_id); |
@@ -171,13 +177,27 @@ class CONTENT_EXPORT RenderViewHost : virtual public RenderWidgetHost { |
const string16& jscript) = 0; |
// Runs some javascript within the context of a frame in the page. The result |
- // is sent back via the notification EXECUTE_JAVASCRIPT_RESULT. |
+ // is sent back via the notification NOTIFICATION_EXECUTE_JAVASCRIPT_RESULT. |
+ // This returns an int, used as a key to identify the corresponding |
+ // notification. |
+ // OBSOLETE. Use ExecuteJavascriptInWebFrameCallbackResult instead. |
virtual int ExecuteJavascriptInWebFrameNotifyResult( |
const string16& frame_xpath, |
const string16& jscript) = 0; |
- virtual Value* ExecuteJavascriptAndGetValue(const string16& frame_xpath, |
- const string16& jscript) = 0; |
+ // Runs some javascript within the context of a frame in the page. The result |
+ // is sent back via the provided callback. |
+ virtual void ExecuteJavascriptInWebFrameCallbackResult( |
+ const string16& frame_xpath, |
+ const string16& jscript, |
+ const JavascriptResultCallback& callback) = 0; |
+ |
+ // Runs some javascript within the context of a frame in the page. A nested |
+ // message loop is run to wait for the result, which is returned. THIS SHOULD |
+ // ONLY BE USED BY TESTS. TODO(avi): Move into a test file. |
+ virtual base::Value* ExecuteJavascriptAndGetValue( |
+ const string16& frame_xpath, |
+ const string16& jscript) = 0; |
// Tells the renderer to perform the given action on the plugin located at |
// the given point. |