| Index: content/browser/frame_host/render_widget_host_view_guest_unittest.cc
|
| diff --git a/content/browser/frame_host/render_widget_host_view_guest_unittest.cc b/content/browser/frame_host/render_widget_host_view_guest_unittest.cc
|
| index 4e3457cfbe443859ea5bdfe0bb32861acf75ce40..52195b027173766d814c2c248e121ab8a816a116 100644
|
| --- a/content/browser/frame_host/render_widget_host_view_guest_unittest.cc
|
| +++ b/content/browser/frame_host/render_widget_host_view_guest_unittest.cc
|
| @@ -101,6 +101,24 @@ class TestBrowserPluginGuest : public BrowserPluginGuest {
|
| received_delegated_frame_(false) {}
|
| ~TestBrowserPluginGuest() override {}
|
|
|
| + void ResetTestData() {
|
| + update_frame_size_received_= gfx::Size();
|
| + update_scale_factor_received_ = 0.f;
|
| + last_surface_id_received_ = cc::SurfaceId();
|
| + last_frame_size_received_ = gfx::Size();
|
| + last_scale_factor_received_ = 0.f;
|
| + received_delegated_frame_ = false;
|
| + }
|
| +
|
| + void set_has_attached_since_surface_set(bool has_attached_since_surface_set) {
|
| + BrowserPluginGuest::set_has_attached_since_surface_set_for_test(
|
| + has_attached_since_surface_set);
|
| + }
|
| +
|
| + void set_attached(bool attached) {
|
| + BrowserPluginGuest::set_attached_for_test(attached);
|
| + }
|
| +
|
| void UpdateGuestSizeIfNecessary(const gfx::Size& frame_size,
|
| float scale_factor) override {
|
| update_frame_size_received_= frame_size;
|
| @@ -234,6 +252,7 @@ TEST_F(RenderWidgetHostViewGuestSurfaceTest, TestGuestSurface) {
|
| view_->SetSize(view_size);
|
| view_->Show();
|
|
|
| + browser_plugin_guest_->set_attached(true);
|
| view_->OnSwapCompositorFrame(
|
| 0, CreateDelegatedFrame(scale_factor, view_size, view_rect));
|
|
|
| @@ -264,6 +283,46 @@ TEST_F(RenderWidgetHostViewGuestSurfaceTest, TestGuestSurface) {
|
| EXPECT_EQ(view_size, browser_plugin_guest_->last_frame_size_received_);
|
| EXPECT_EQ(scale_factor, browser_plugin_guest_->last_scale_factor_received_);
|
| }
|
| +
|
| + browser_plugin_guest_->ResetTestData();
|
| + browser_plugin_guest_->set_has_attached_since_surface_set(true);
|
| +
|
| + view_->OnSwapCompositorFrame(
|
| + 0, CreateDelegatedFrame(scale_factor, view_size, view_rect));
|
| +
|
| + if (UseSurfacesEnabled()) {
|
| + cc::SurfaceId id = surface_id();
|
| + if (!id.is_null()) {
|
| +#if !defined(OS_ANDROID)
|
| + ImageTransportFactory* factory = ImageTransportFactory::GetInstance();
|
| + cc::SurfaceManager* manager = factory->GetSurfaceManager();
|
| + cc::Surface* surface = manager->GetSurfaceForId(id);
|
| + EXPECT_TRUE(surface);
|
| + // There should be a SurfaceSequence created by the RWHVGuest.
|
| + EXPECT_EQ(1u, surface->GetDestructionDependencyCount());
|
| +#endif
|
| + // Surface ID should have been passed to BrowserPluginGuest to
|
| + // be sent to the embedding renderer.
|
| + EXPECT_EQ(id, browser_plugin_guest_->last_surface_id_received_);
|
| + EXPECT_EQ(view_size, browser_plugin_guest_->last_frame_size_received_);
|
| + EXPECT_EQ(scale_factor,
|
| + browser_plugin_guest_->last_scale_factor_received_);
|
| + }
|
| + } else {
|
| + EXPECT_TRUE(browser_plugin_guest_->received_delegated_frame_);
|
| + EXPECT_EQ(view_size, browser_plugin_guest_->last_frame_size_received_);
|
| + EXPECT_EQ(scale_factor, browser_plugin_guest_->last_scale_factor_received_);
|
| + }
|
| +
|
| + browser_plugin_guest_->set_attached(false);
|
| + browser_plugin_guest_->ResetTestData();
|
| +
|
| + view_->OnSwapCompositorFrame(
|
| + 0, CreateDelegatedFrame(scale_factor, view_size, view_rect));
|
| + EXPECT_EQ(gfx::Size(), browser_plugin_guest_->update_frame_size_received_);
|
| + EXPECT_EQ(0.f, browser_plugin_guest_->update_scale_factor_received_);
|
| + if (UseSurfacesEnabled())
|
| + EXPECT_TRUE(surface_id().is_null());
|
| }
|
|
|
| } // namespace content
|
|
|