Chromium Code Reviews| Index: content/browser/renderer_host/render_widget_host_view_browsertest.cc |
| diff --git a/content/browser/renderer_host/render_widget_host_view_browsertest.cc b/content/browser/renderer_host/render_widget_host_view_browsertest.cc |
| index 60172d38635d2002b01410e5a2e3112c3bfad258..896cf4728eda1825cc236805a5795d96ba8386a6 100644 |
| --- a/content/browser/renderer_host/render_widget_host_view_browsertest.cc |
| +++ b/content/browser/renderer_host/render_widget_host_view_browsertest.cc |
| @@ -211,17 +211,35 @@ class RenderWidgetHostViewBrowserTest : public ContentBrowserTest { |
| int frames_captured_; |
| }; |
| +enum CompositingMode { |
| + GL_COMPOSITING, |
| + SOFTWARE_COMPOSITING, |
| +}; |
| + |
| class CompositingRenderWidgetHostViewBrowserTest |
| - : public RenderWidgetHostViewBrowserTest { |
| + : public RenderWidgetHostViewBrowserTest, |
| + public testing::WithParamInterface<CompositingMode> { |
| public: |
| + explicit CompositingRenderWidgetHostViewBrowserTest() |
| + : compositing_mode_(GetParam()) { |
| +#if !defined(USE_AURA) && !defined(OS_MACOSX) |
| + // TODO(danakj): Remove when GTK linux is no more. |
| + compositing_mode_ = GL_COMPOSITING; |
|
sky
2013/12/19 21:35:32
Wouldn't this be better placed around INSTANTIATE_
danakj
2013/12/19 21:40:54
Hm! Never heard of such a thing, I'll go look it u
danakj
2013/12/19 21:45:31
Oh, I see what you mean, the INSTANTIATE thing at
danakj
2013/12/19 22:21:06
Done.
|
| +#endif |
| + } |
| + |
| virtual void SetUp() OVERRIDE { |
| - // We expect real pixel output for these tests. |
| - UseRealGLContexts(); |
| + if (compositing_mode_ == SOFTWARE_COMPOSITING) { |
| + UseSoftwareCompositing(); |
| + } else { |
| + // We expect real pixel output for these tests. |
| + UseRealGLContexts(); |
| - // On legacy windows, these tests need real GL bindings to pass. |
| #if defined(OS_WIN) && !defined(USE_AURA) |
| - UseRealGLBindings(); |
| + // On legacy windows, these tests need real GL bindings to pass. |
| + UseRealGLBindings(); |
| #endif |
| + } |
| RenderWidgetHostViewBrowserTest::SetUp(); |
| } |
| @@ -268,6 +286,8 @@ class CompositingRenderWidgetHostViewBrowserTest |
| WaitForCopySourceReady(); |
| return true; |
| } |
| + |
| + CompositingMode compositing_mode_; |
|
sky
2013/12/19 21:35:32
const and private and DISALLOW_...?
danakj
2013/12/19 21:40:54
Sure, leaky encapsulation in test fixtures has bec
danakj
2013/12/19 22:21:06
Done.
|
| }; |
| class NonCompositingRenderWidgetHostViewBrowserTest |
| @@ -342,7 +362,7 @@ class FakeFrameSubscriber : public RenderWidgetHostViewFrameSubscriber { |
| // The CopyFromBackingStore() API should work on all platforms when compositing |
| // is enabled. |
| -IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTest, |
| +IN_PROC_BROWSER_TEST_P(CompositingRenderWidgetHostViewBrowserTest, |
| CopyFromBackingStore) { |
| RunBasicCopyFromBackingStoreTest(); |
| } |
| @@ -356,7 +376,7 @@ IN_PROC_BROWSER_TEST_F(NonCompositingRenderWidgetHostViewBrowserTest, |
| // Tests that the callback passed to CopyFromBackingStore is always called, |
| // even when the RenderWidgetHost is deleting in the middle of an async copy. |
| -IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTest, |
| +IN_PROC_BROWSER_TEST_P(CompositingRenderWidgetHostViewBrowserTest, |
| CopyFromBackingStore_CallbackDespiteDelete) { |
| SET_UP_SURFACE_OR_PASS_TEST(NULL); |
| @@ -386,7 +406,7 @@ IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTest, |
| #define MAYBE_CopyFromCompositingSurface_CallbackDespiteDelete \ |
| CopyFromCompositingSurface_CallbackDespiteDelete |
| #endif |
| -IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTest, |
| +IN_PROC_BROWSER_TEST_P(CompositingRenderWidgetHostViewBrowserTest, |
| MAYBE_CopyFromCompositingSurface_CallbackDespiteDelete) { |
| SET_UP_SURFACE_OR_PASS_TEST(NULL); |
| RenderWidgetHostViewPort* const view = GetRenderWidgetHostViewPort(); |
| @@ -421,7 +441,7 @@ IN_PROC_BROWSER_TEST_F(NonCompositingRenderWidgetHostViewBrowserTest, |
| // Test basic frame subscription functionality. We subscribe, and then run |
| // until at least one DeliverFrameCallback has been invoked. |
| -IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTest, |
| +IN_PROC_BROWSER_TEST_P(CompositingRenderWidgetHostViewBrowserTest, |
| FrameSubscriberTest) { |
| SET_UP_SURFACE_OR_PASS_TEST(NULL); |
| RenderWidgetHostViewPort* const view = GetRenderWidgetHostViewPort(); |
| @@ -447,7 +467,7 @@ IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTest, |
| } |
| // Test that we can copy twice from an accelerated composited page. |
| -IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTest, CopyTwice) { |
| +IN_PROC_BROWSER_TEST_P(CompositingRenderWidgetHostViewBrowserTest, CopyTwice) { |
| SET_UP_SURFACE_OR_PASS_TEST(NULL); |
| RenderWidgetHostViewPort* const view = GetRenderWidgetHostViewPort(); |
| if (!view->CanCopyToVideoFrame()) { |
| @@ -753,7 +773,7 @@ class CompositingRenderWidgetHostViewBrowserTestTabCapture |
| std::string test_url_; |
| }; |
| -IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| +IN_PROC_BROWSER_TEST_P(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| CopyFromCompositingSurface_Origin_Unscaled) { |
| gfx::Rect copy_rect(400, 300); |
| gfx::Size output_size = copy_rect.size(); |
| @@ -767,7 +787,7 @@ IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| video_frame); |
| } |
| -IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| +IN_PROC_BROWSER_TEST_P(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| CopyFromCompositingSurface_Origin_Scaled) { |
| gfx::Rect copy_rect(400, 300); |
| gfx::Size output_size(200, 100); |
| @@ -781,7 +801,7 @@ IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| video_frame); |
| } |
| -IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| +IN_PROC_BROWSER_TEST_P(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| CopyFromCompositingSurface_Cropped_Unscaled) { |
| // Grab 60x60 pixels from the center of the tab contents. |
| gfx::Rect copy_rect(400, 300); |
| @@ -798,7 +818,7 @@ IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| video_frame); |
| } |
| -IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| +IN_PROC_BROWSER_TEST_P(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| CopyFromCompositingSurface_Cropped_Scaled) { |
| // Grab 60x60 pixels from the center of the tab contents. |
| gfx::Rect copy_rect(400, 300); |
| @@ -815,7 +835,7 @@ IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| video_frame); |
| } |
| -IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| +IN_PROC_BROWSER_TEST_P(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| CopyFromCompositingSurface_ForVideoFrame) { |
| // Grab 90x60 pixels from the center of the tab contents. |
| gfx::Rect copy_rect(400, 300); |
| @@ -832,7 +852,7 @@ IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| video_frame); |
| } |
| -IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| +IN_PROC_BROWSER_TEST_P(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| CopyFromCompositingSurface_ForVideoFrame_Scaled) { |
| // Grab 90x60 pixels from the center of the tab contents. |
| gfx::Rect copy_rect(400, 300); |
| @@ -853,9 +873,7 @@ IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| class CompositingRenderWidgetHostViewTabCaptureHighDPI |
| : public CompositingRenderWidgetHostViewBrowserTestTabCapture { |
| public: |
| - CompositingRenderWidgetHostViewTabCaptureHighDPI() |
| - : kScale(2.f) { |
| - } |
| + CompositingRenderWidgetHostViewTabCaptureHighDPI() : kScale(2.f) {} |
| virtual void SetUpCommandLine(CommandLine* cmd) OVERRIDE { |
| CompositingRenderWidgetHostViewBrowserTestTabCapture::SetUpCommandLine(cmd); |
| @@ -880,7 +898,7 @@ class CompositingRenderWidgetHostViewTabCaptureHighDPI |
| DISALLOW_COPY_AND_ASSIGN(CompositingRenderWidgetHostViewTabCaptureHighDPI); |
| }; |
| -IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewTabCaptureHighDPI, |
| +IN_PROC_BROWSER_TEST_P(CompositingRenderWidgetHostViewTabCaptureHighDPI, |
| CopyFromCompositingSurface) { |
| gfx::Rect copy_rect(200, 150); |
| gfx::Size output_size = copy_rect.size(); |
| @@ -895,7 +913,7 @@ IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewTabCaptureHighDPI, |
| video_frame); |
| } |
| -IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewTabCaptureHighDPI, |
| +IN_PROC_BROWSER_TEST_P(CompositingRenderWidgetHostViewTabCaptureHighDPI, |
| CopyFromCompositingSurfaceVideoFrame) { |
| gfx::Size html_rect_size(200, 150); |
| // Grab 90x60 pixels from the center of the tab contents. |
| @@ -913,6 +931,16 @@ IN_PROC_BROWSER_TEST_F(CompositingRenderWidgetHostViewTabCaptureHighDPI, |
| video_frame); |
| } |
| +INSTANTIATE_TEST_CASE_P(GLAndSoftware, |
| + CompositingRenderWidgetHostViewBrowserTest, |
| + testing::Values(GL_COMPOSITING, SOFTWARE_COMPOSITING)); |
| +INSTANTIATE_TEST_CASE_P(GLAndSoftware, |
| + CompositingRenderWidgetHostViewBrowserTestTabCapture, |
| + testing::Values(GL_COMPOSITING, SOFTWARE_COMPOSITING)); |
| +INSTANTIATE_TEST_CASE_P(GLAndSoftware, |
| + CompositingRenderWidgetHostViewTabCaptureHighDPI, |
| + testing::Values(GL_COMPOSITING, SOFTWARE_COMPOSITING)); |
| + |
| #endif // !defined(OS_ANDROID) && !defined(OS_IOS) |
| } // namespace |