Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Unified Diff: content/browser/renderer_host/offscreen_canvas_surface_manager_unittest.cc

Issue 2584643002: Revamp OffscreenCanvas commit flow (Closed)
Patch Set: rebase and fix conflict Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/offscreen_canvas_surface_manager_unittest.cc
diff --git a/content/browser/renderer_host/offscreen_canvas_surface_manager_unittest.cc b/content/browser/renderer_host/offscreen_canvas_surface_manager_unittest.cc
index ef85a713fa459cf9f08592c70e62cd9dc8387b80..7378e907d93c03b4b444c71262bf1f28a31d60e8 100644
--- a/content/browser/renderer_host/offscreen_canvas_surface_manager_unittest.cc
+++ b/content/browser/renderer_host/offscreen_canvas_surface_manager_unittest.cc
@@ -24,11 +24,10 @@ class OffscreenCanvasSurfaceManagerTest : public testing::Test {
return OffscreenCanvasSurfaceManager::GetInstance()
->registered_surface_instances_.size();
}
- const cc::SurfaceId& getCurrentSurfaceId() const {
- return current_surface_id_;
- }
- void setSurfaceId(const cc::SurfaceId& surface_id) {
- current_surface_id_ = surface_id;
+
+ void OnSurfaceCreated(const cc::SurfaceId& surface_id) {
+ OffscreenCanvasSurfaceManager::GetInstance()->OnSurfaceCreated(
+ surface_id, gfx::Size(10, 10), 1.0);
}
protected:
@@ -36,7 +35,6 @@ class OffscreenCanvasSurfaceManagerTest : public testing::Test {
void TearDown() override;
private:
- cc::SurfaceId current_surface_id_;
std::unique_ptr<TestBrowserThread> ui_thread_;
base::MessageLoopForUI message_loop_;
#if defined(OS_ANDROID)
@@ -70,54 +68,46 @@ void OffscreenCanvasSurfaceManagerTest::TearDown() {
// process.
TEST_F(OffscreenCanvasSurfaceManagerTest,
SingleHTMLCanvasElementTransferToOffscreen) {
- // Assume that HTMLCanvasElement.transferControlToOffscreen() is triggered and
- // it will invoke GetSurfaceId function on OffscreenCanvasSurfaceImpl to
- // obtain a unique SurfaceId from browser.
- auto surface_impl = base::WrapUnique(new OffscreenCanvasSurfaceImpl());
- surface_impl->GetSurfaceId(
- base::Bind(&OffscreenCanvasSurfaceManagerTest::setSurfaceId,
- base::Unretained(this)));
-
- EXPECT_TRUE(this->getCurrentSurfaceId().is_valid());
+ blink::mojom::OffscreenCanvasSurfaceClientPtr client;
+ cc::FrameSinkId frame_sink_id(3, 3);
+ cc::SurfaceIdAllocator surface_id_allocator;
+ cc::LocalFrameId current_local_frame_id(surface_id_allocator.GenerateId());
+
+ auto surface_impl = base::WrapUnique(
+ new OffscreenCanvasSurfaceImpl(frame_sink_id, std::move(client)));
EXPECT_EQ(1, this->getNumSurfaceImplInstances());
- cc::FrameSinkId frame_sink_id = surface_impl.get()->frame_sink_id();
- EXPECT_EQ(frame_sink_id, this->getCurrentSurfaceId().frame_sink_id());
EXPECT_EQ(surface_impl.get(),
OffscreenCanvasSurfaceManager::GetInstance()->GetSurfaceInstance(
frame_sink_id));
+ this->OnSurfaceCreated(cc::SurfaceId(frame_sink_id, current_local_frame_id));
+ EXPECT_EQ(current_local_frame_id, surface_impl->current_local_frame_id());
+
surface_impl = nullptr;
EXPECT_EQ(0, this->getNumSurfaceImplInstances());
}
TEST_F(OffscreenCanvasSurfaceManagerTest,
MultiHTMLCanvasElementTransferToOffscreen) {
- // Same scenario as above test except that now we have two HTMLCanvasElement
- // transferControlToOffscreen at the same time.
- auto surface_impl_a = base::WrapUnique(new OffscreenCanvasSurfaceImpl());
- surface_impl_a->GetSurfaceId(
- base::Bind(&OffscreenCanvasSurfaceManagerTest::setSurfaceId,
- base::Unretained(this)));
- cc::SurfaceId surface_id_a = this->getCurrentSurfaceId();
-
- EXPECT_TRUE(surface_id_a.is_valid());
+ blink::mojom::OffscreenCanvasSurfaceClientPtr client_a;
+ cc::FrameSinkId frame_sink_id_a(3, 3);
+ cc::SurfaceIdAllocator surface_id_allocator;
+ auto surface_impl_a = base::WrapUnique(
+ new OffscreenCanvasSurfaceImpl(frame_sink_id_a, std::move(client_a)));
- auto surface_impl_b = base::WrapUnique(new OffscreenCanvasSurfaceImpl());
- surface_impl_b->GetSurfaceId(
- base::Bind(&OffscreenCanvasSurfaceManagerTest::setSurfaceId,
- base::Unretained(this)));
- cc::SurfaceId surface_id_b = this->getCurrentSurfaceId();
+ blink::mojom::OffscreenCanvasSurfaceClientPtr client_b;
+ cc::FrameSinkId frame_sink_id_b(4, 4);
- EXPECT_TRUE(surface_id_b.is_valid());
- EXPECT_NE(surface_id_a, surface_id_b);
+ auto surface_impl_b = base::WrapUnique(
+ new OffscreenCanvasSurfaceImpl(frame_sink_id_b, std::move(client_b)));
EXPECT_EQ(2, this->getNumSurfaceImplInstances());
EXPECT_EQ(surface_impl_a.get(),
OffscreenCanvasSurfaceManager::GetInstance()->GetSurfaceInstance(
- surface_id_a.frame_sink_id()));
+ frame_sink_id_a));
EXPECT_EQ(surface_impl_b.get(),
OffscreenCanvasSurfaceManager::GetInstance()->GetSurfaceInstance(
- surface_id_b.frame_sink_id()));
+ frame_sink_id_b));
surface_impl_a = nullptr;
EXPECT_EQ(1, this->getNumSurfaceImplInstances());

Powered by Google App Engine
This is Rietveld 408576698