Index: content/public/test/browser_test_utils.h |
diff --git a/content/public/test/browser_test_utils.h b/content/public/test/browser_test_utils.h |
index c3812dceb81f2ff1fff5f2bb7d0b4e1b4371b48c..cf2bdc633478fc9d0081c984d03b52fbb5061598 100644 |
--- a/content/public/test/browser_test_utils.h |
+++ b/content/public/test/browser_test_utils.h |
@@ -166,20 +166,26 @@ void SimulateKeyPress(WebContents* web_contents, |
// Allow ExecuteScript* methods to target either a WebContents or a |
// RenderFrameHost. Targetting a WebContents means executing the script in the |
-// RenderFrameHost returned by WebContents::GetMainFrame(), which is the |
-// main frame. Pass a specific RenderFrameHost to target it. |
+// RenderFrameHost returned by WebContents::GetMainFrame(), which is the main |
+// frame. Pass a specific RenderFrameHost to target it. Embedders may declare |
+// additional ConvertToRenderFrameHost functions for convenience. |
class ToRenderFrameHost { |
public: |
- ToRenderFrameHost(WebContents* web_contents); |
- ToRenderFrameHost(RenderViewHost* render_view_host); |
- ToRenderFrameHost(RenderFrameHost* render_frame_host); |
+ template <typename T> |
+ ToRenderFrameHost(T* frame_convertible_value) |
+ : render_frame_host_(ConvertToRenderFrameHost(frame_convertible_value)) {} |
+ // Extract the underlying frame. |
RenderFrameHost* render_frame_host() const { return render_frame_host_; } |
private: |
RenderFrameHost* render_frame_host_; |
}; |
+RenderFrameHost* ConvertToRenderFrameHost(RenderViewHost* render_view_host); |
+RenderFrameHost* ConvertToRenderFrameHost(RenderFrameHost* render_view_host); |
+RenderFrameHost* ConvertToRenderFrameHost(WebContents* web_contents); |
+ |
// Executes the passed |script| in the specified frame. The |script| should not |
// invoke domAutomationController.send(); otherwise, your test will hang or be |
// flaky. If you want to extract a result, use one of the below functions. |