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

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

Issue 2848223003: Enforce constant size and device scale factor for surfaces (Closed)
Patch Set: Address comments Created 3 years, 7 months 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/render_widget_host_view_aura_unittest.cc
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
index 73b9c154f7aae610be5062c82d40c9e9f5e26aa9..8414337db23364bae1c89c6e665d96d6df240cc3 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -27,6 +27,7 @@
#include "cc/output/compositor_frame.h"
#include "cc/output/compositor_frame_metadata.h"
#include "cc/output/copy_output_request.h"
+#include "cc/surfaces/local_surface_id_allocator.h"
#include "cc/surfaces/surface.h"
#include "cc/surfaces/surface_manager.h"
#include "cc/test/begin_frame_args_test.h"
@@ -130,10 +131,6 @@ const cc::LocalSurfaceId kArbitraryLocalSurfaceId(
1,
base::UnguessableToken::Deserialize(2, 3));
-cc::LocalSurfaceId CreateLocalSurfaceId() {
- return cc::LocalSurfaceId(1, base::UnguessableToken::Create());
-}
-
class TestOverscrollDelegate : public OverscrollControllerDelegate {
public:
explicit TestOverscrollDelegate(RenderWidgetHostView* view)
@@ -835,6 +832,8 @@ class RenderWidgetHostViewAuraTest : public testing::Test {
IPC::TestSink* sink_;
base::test::ScopedFeatureList feature_list_;
+ cc::LocalSurfaceIdAllocator local_surface_id_allocator_;
+
private:
DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewAuraTest);
};
@@ -2342,7 +2341,7 @@ TEST_F(RenderWidgetHostViewAuraTest, TwoOutputSurfaces) {
// Submit another frame. The resources for the previous frame belong to the
// old RendererCompositorFrameSink and should not be returned.
- view_->SubmitCompositorFrame(CreateLocalSurfaceId(),
+ view_->SubmitCompositorFrame(local_surface_id_allocator_.GenerateId(),
MakeDelegatedFrame(1.f, view_size, view_rect));
EXPECT_EQ(0u, sink_->message_count());
@@ -2488,6 +2487,8 @@ TEST_F(RenderWidgetHostViewAuraTest, DelegatedFrameGutter) {
gfx::Size large_size(100, 100);
gfx::Size small_size(40, 45);
gfx::Size medium_size(40, 95);
+ cc::LocalSurfaceId small_id = local_surface_id_allocator_.GenerateId();
+ cc::LocalSurfaceId medium_id = local_surface_id_allocator_.GenerateId();
// Prevent the DelegatedFrameHost from skipping frames.
// XXX
@@ -2502,7 +2503,7 @@ TEST_F(RenderWidgetHostViewAuraTest, DelegatedFrameGutter) {
cc::CompositorFrame frame =
MakeDelegatedFrame(1.f, small_size, gfx::Rect(small_size));
frame.metadata.root_background_color = SK_ColorRED;
- view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame));
+ view_->SubmitCompositorFrame(small_id, std::move(frame));
ui::Layer* parent_layer = view_->GetNativeView()->layer();
@@ -2523,7 +2524,7 @@ TEST_F(RenderWidgetHostViewAuraTest, DelegatedFrameGutter) {
EXPECT_EQ(SK_ColorBLACK, parent_layer->children()[0]->background_color());
frame = MakeDelegatedFrame(1.f, medium_size, gfx::Rect(medium_size));
- view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame));
+ view_->SubmitCompositorFrame(medium_id, std::move(frame));
EXPECT_EQ(0u, parent_layer->children().size());
view_->SetSize(large_size);
@@ -2539,6 +2540,9 @@ TEST_F(RenderWidgetHostViewAuraTest, Resize) {
gfx::Size size1(100, 100);
gfx::Size size2(200, 200);
gfx::Size size3(300, 300);
+ cc::LocalSurfaceId id1 = local_surface_id_allocator_.GenerateId();
+ cc::LocalSurfaceId id2 = local_surface_id_allocator_.GenerateId();
+ cc::LocalSurfaceId id3 = local_surface_id_allocator_.GenerateId();
aura::Window* root_window = parent_view_->GetNativeView()->GetRootWindow();
view_->InitAsChild(nullptr);
@@ -2547,8 +2551,7 @@ TEST_F(RenderWidgetHostViewAuraTest, Resize) {
view_->Show();
view_->SetSize(size1);
view_->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
- MakeDelegatedFrame(1.f, size1, gfx::Rect(size1)));
+ id1, MakeDelegatedFrame(1.f, size1, gfx::Rect(size1)));
ui::DrawWaiterForTest::WaitForCommit(
root_window->GetHost()->compositor());
ViewHostMsg_UpdateRect_Params update_params;
@@ -2587,8 +2590,7 @@ TEST_F(RenderWidgetHostViewAuraTest, Resize) {
// message.
view_->renderer_compositor_frame_sink_->Reset();
view_->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
- MakeDelegatedFrame(1.f, size3, gfx::Rect(size3)));
+ id3, MakeDelegatedFrame(1.f, size3, gfx::Rect(size3)));
view_->renderer_compositor_frame_sink_->Flush();
// Expect the frame ack;
EXPECT_TRUE(view_->renderer_compositor_frame_sink_->did_receive_ack());
@@ -2598,8 +2600,7 @@ TEST_F(RenderWidgetHostViewAuraTest, Resize) {
// produce a Resize message after the commit.
view_->renderer_compositor_frame_sink_->Reset();
view_->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
- MakeDelegatedFrame(1.f, size2, gfx::Rect(size2)));
+ id2, MakeDelegatedFrame(1.f, size2, gfx::Rect(size2)));
view_->renderer_compositor_frame_sink_->Flush();
cc::SurfaceId surface_id = view_->surface_id();
if (!surface_id.is_valid()) {
@@ -2656,6 +2657,7 @@ TEST_F(RenderWidgetHostViewAuraTest, Resize) {
TEST_F(RenderWidgetHostViewAuraTest, SkippedDelegatedFrames) {
gfx::Rect view_rect(100, 100);
gfx::Size frame_size = view_rect.size();
+ cc::LocalSurfaceId local_surface_id = kArbitraryLocalSurfaceId;
view_->InitAsChild(nullptr);
aura::client::ParentWindowWithContext(
@@ -2669,7 +2671,7 @@ TEST_F(RenderWidgetHostViewAuraTest, SkippedDelegatedFrames) {
// A full frame of damage.
EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect));
- view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId,
+ view_->SubmitCompositorFrame(local_surface_id,
MakeDelegatedFrame(1.f, frame_size, view_rect));
testing::Mock::VerifyAndClearExpectations(&observer);
view_->RunOnCompositingDidCommit();
@@ -2679,8 +2681,7 @@ TEST_F(RenderWidgetHostViewAuraTest, SkippedDelegatedFrames) {
EXPECT_CALL(observer,
OnDelegatedFrameDamage(view_->window_, partial_view_rect));
view_->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
- MakeDelegatedFrame(1.f, frame_size, partial_view_rect));
+ local_surface_id, MakeDelegatedFrame(1.f, frame_size, partial_view_rect));
testing::Mock::VerifyAndClearExpectations(&observer);
view_->RunOnCompositingDidCommit();
@@ -2697,7 +2698,7 @@ TEST_F(RenderWidgetHostViewAuraTest, SkippedDelegatedFrames) {
gfx::Rect dropped_damage_rect_1(10, 20, 30, 40);
EXPECT_CALL(observer, OnDelegatedFrameDamage(_, _)).Times(0);
view_->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
+ local_surface_id,
MakeDelegatedFrame(1.f, frame_size, dropped_damage_rect_1));
testing::Mock::VerifyAndClearExpectations(&observer);
view_->RunOnCompositingDidCommit();
@@ -2705,7 +2706,7 @@ TEST_F(RenderWidgetHostViewAuraTest, SkippedDelegatedFrames) {
gfx::Rect dropped_damage_rect_2(40, 50, 10, 20);
EXPECT_CALL(observer, OnDelegatedFrameDamage(_, _)).Times(0);
view_->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
+ local_surface_id,
MakeDelegatedFrame(1.f, frame_size, dropped_damage_rect_2));
testing::Mock::VerifyAndClearExpectations(&observer);
view_->RunOnCompositingDidCommit();
@@ -2715,13 +2716,13 @@ TEST_F(RenderWidgetHostViewAuraTest, SkippedDelegatedFrames) {
// Unlock the compositor. This frame should damage everything.
frame_size = view_rect.size();
+ local_surface_id = local_surface_id_allocator_.GenerateId();
gfx::Rect new_damage_rect(5, 6, 10, 10);
EXPECT_CALL(observer,
OnDelegatedFrameDamage(view_->window_, view_rect));
view_->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
- MakeDelegatedFrame(1.f, frame_size, new_damage_rect));
+ local_surface_id, MakeDelegatedFrame(1.f, frame_size, new_damage_rect));
// The swap unlocks the compositor.
EXPECT_TRUE(view_->resize_locked());
EXPECT_FALSE(view_->compositor_locked());
@@ -2735,8 +2736,7 @@ TEST_F(RenderWidgetHostViewAuraTest, SkippedDelegatedFrames) {
EXPECT_CALL(observer,
OnDelegatedFrameDamage(view_->window_, partial_view_rect));
view_->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
- MakeDelegatedFrame(1.f, frame_size, partial_view_rect));
+ local_surface_id, MakeDelegatedFrame(1.f, frame_size, partial_view_rect));
testing::Mock::VerifyAndClearExpectations(&observer);
view_->RunOnCompositingDidCommit();
EXPECT_FALSE(view_->resize_locked());
@@ -2751,15 +2751,16 @@ TEST_F(RenderWidgetHostViewAuraTest, SkippedDelegatedFrames) {
// We're never expecting empty frames, resize to something non-empty.
view_rect = gfx::Rect(100, 100);
+ frame_size = view_rect.size();
+ local_surface_id = local_surface_id_allocator_.GenerateId();
view_->SetSize(view_rect.size());
EXPECT_TRUE(view_->resize_locked());
EXPECT_TRUE(view_->compositor_locked());
// This frame should not be dropped.
EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect));
- view_->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
- MakeDelegatedFrame(1.f, view_rect.size(), view_rect));
+ view_->SubmitCompositorFrame(local_surface_id,
+ MakeDelegatedFrame(1.f, frame_size, view_rect));
testing::Mock::VerifyAndClearExpectations(&observer);
EXPECT_TRUE(view_->resize_locked());
EXPECT_FALSE(view_->compositor_locked());
@@ -2774,6 +2775,7 @@ TEST_F(RenderWidgetHostViewAuraTest, SkippedDelegatedFrames) {
TEST_F(RenderWidgetHostViewAuraTest, ResizeAfterReceivingFrame) {
gfx::Rect view_rect(100, 100);
gfx::Size frame_size = view_rect.size();
+ cc::LocalSurfaceId local_surface_id = kArbitraryLocalSurfaceId;
view_->InitAsChild(nullptr);
aura::client::ParentWindowWithContext(
@@ -2787,7 +2789,7 @@ TEST_F(RenderWidgetHostViewAuraTest, ResizeAfterReceivingFrame) {
// A frame of initial size.
EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect));
view_->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
+ local_surface_id,
MakeDelegatedFrame(1.f, frame_size, gfx::Rect(frame_size)));
testing::Mock::VerifyAndClearExpectations(&observer);
view_->RunOnCompositingDidCommit();
@@ -2795,7 +2797,7 @@ TEST_F(RenderWidgetHostViewAuraTest, ResizeAfterReceivingFrame) {
// A frame of initial size arrives, but we don't commit in the UI yet.
EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, _));
view_->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
+ local_surface_id,
MakeDelegatedFrame(1.f, frame_size, gfx::Rect(frame_size)));
testing::Mock::VerifyAndClearExpectations(&observer);
@@ -2810,7 +2812,7 @@ TEST_F(RenderWidgetHostViewAuraTest, ResizeAfterReceivingFrame) {
EXPECT_CALL(observer, OnDelegatedFrameDamage(_, _)).Times(0);
view_->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
+ local_surface_id,
MakeDelegatedFrame(1.f, frame_size, gfx::Rect(frame_size)));
testing::Mock::VerifyAndClearExpectations(&observer);
@@ -2825,15 +2827,16 @@ TEST_F(RenderWidgetHostViewAuraTest, ResizeAfterReceivingFrame) {
EXPECT_CALL(observer, OnDelegatedFrameDamage(_, _)).Times(0);
view_->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
+ local_surface_id,
MakeDelegatedFrame(1.f, frame_size, gfx::Rect(frame_size)));
testing::Mock::VerifyAndClearExpectations(&observer);
// A frame arrives of the new size, which will be accepted.
frame_size = view_rect.size();
+ local_surface_id = local_surface_id_allocator_.GenerateId();
EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, _));
view_->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
+ local_surface_id,
MakeDelegatedFrame(1.f, frame_size, gfx::Rect(frame_size)));
// Receiving the frame unlocks the compositor so it can commit.
EXPECT_TRUE(view_->resize_locked());
@@ -2924,7 +2927,7 @@ TEST_F(RenderWidgetHostViewAuraTest, OutputSurfaceIdChange) {
// Submit a frame from the new RendererCompositorFrameSink.
EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect));
- view_->SubmitCompositorFrame(CreateLocalSurfaceId(),
+ view_->SubmitCompositorFrame(local_surface_id_allocator_.GenerateId(),
MakeDelegatedFrame(1.f, frame_size, view_rect));
testing::Mock::VerifyAndClearExpectations(&observer);
view_->RunOnCompositingDidCommit();
@@ -2934,7 +2937,7 @@ TEST_F(RenderWidgetHostViewAuraTest, OutputSurfaceIdChange) {
// Submit a frame from the new RendererCompositorFrameSink.
view_->SubmitCompositorFrame(
- CreateLocalSurfaceId(),
+ local_surface_id_allocator_.GenerateId(),
MakeDelegatedFrame(1.f, gfx::Size(), gfx::Rect()));
testing::Mock::VerifyAndClearExpectations(&observer);
view_->RunOnCompositingDidCommit();
@@ -2944,7 +2947,7 @@ TEST_F(RenderWidgetHostViewAuraTest, OutputSurfaceIdChange) {
// Swap another frame, with a different surface id.
EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect));
- view_->SubmitCompositorFrame(CreateLocalSurfaceId(),
+ view_->SubmitCompositorFrame(local_surface_id_allocator_.GenerateId(),
MakeDelegatedFrame(1.f, frame_size, view_rect));
testing::Mock::VerifyAndClearExpectations(&observer);
view_->RunOnCompositingDidCommit();
@@ -3083,14 +3086,14 @@ TEST_F(RenderWidgetHostViewAuraTest, DiscardDelegatedFrames) {
views[1]->Hide();
EXPECT_TRUE(views[1]->HasFrameData());
gfx::Size size2(200, 200);
+ cc::LocalSurfaceId id2 = local_surface_id_allocator_.GenerateId();
views[1]->SetSize(size2);
EXPECT_FALSE(views[1]->HasFrameData());
// Show it, it should block until we give it a frame.
views[1]->Show();
EXPECT_TRUE(views[1]->released_front_lock_active());
views[1]->SubmitCompositorFrame(
- kArbitraryLocalSurfaceId,
- MakeDelegatedFrame(1.f, size2, gfx::Rect(size2)));
+ id2, MakeDelegatedFrame(1.f, size2, gfx::Rect(size2)));
EXPECT_FALSE(views[1]->released_front_lock_active());
for (size_t i = 0; i < renderer_count - 1; ++i)
@@ -3165,7 +3168,7 @@ TEST_F(RenderWidgetHostViewAuraTest, DiscardDelegatedFramesWithLocking) {
for (size_t i = 0; i < renderer_count; ++i) {
views[i]->Show();
views[i]->SubmitCompositorFrame(
- i ? CreateLocalSurfaceId() : kArbitraryLocalSurfaceId,
+ i ? local_surface_id_allocator_.GenerateId() : kArbitraryLocalSurfaceId,
MakeDelegatedFrame(1.f, frame_size, view_rect));
EXPECT_TRUE(views[i]->HasFrameData());
}
@@ -3311,6 +3314,7 @@ class LastObserverTracker : public cc::FakeExternalBeginFrameSource::Client {
TEST_F(RenderWidgetHostViewAuraTest, ForwardsBeginFrameAcks) {
gfx::Rect view_rect(100, 100);
gfx::Size frame_size = view_rect.size();
+ cc::LocalSurfaceId local_surface_id = kArbitraryLocalSurfaceId;
view_->InitAsChild(nullptr);
aura::client::ParentWindowWithContext(
@@ -3344,7 +3348,7 @@ TEST_F(RenderWidgetHostViewAuraTest, ForwardsBeginFrameAcks) {
cc::BeginFrameAck ack(source_id, 5, 4, true);
cc::CompositorFrame frame = MakeDelegatedFrame(1.f, frame_size, view_rect);
frame.metadata.begin_frame_ack = ack;
- view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame));
+ view_->SubmitCompositorFrame(local_surface_id, std::move(frame));
view_->RunOnCompositingDidCommit();
EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_));
}
@@ -3377,7 +3381,7 @@ TEST_F(RenderWidgetHostViewAuraTest, ForwardsBeginFrameAcks) {
cc::CompositorFrame frame =
MakeDelegatedFrame(1.f, frame_size, dropped_damage_rect);
frame.metadata.begin_frame_ack = ack;
- view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame));
+ view_->SubmitCompositorFrame(local_surface_id, std::move(frame));
view_->RunOnCompositingDidCommit();
ack.latest_confirmed_sequence_number = 4;
ack.has_damage = false;
@@ -3400,7 +3404,7 @@ TEST_F(RenderWidgetHostViewAuraTest, ForwardsBeginFrameAcks) {
cc::CompositorFrame frame =
MakeDelegatedFrame(1.f, frame_size, dropped_damage_rect);
frame.metadata.begin_frame_ack = ack;
- view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame));
+ view_->SubmitCompositorFrame(local_surface_id, std::move(frame));
view_->RunOnCompositingDidCommit();
ack.latest_confirmed_sequence_number =
cc::BeginFrameArgs::kInvalidFrameNumber;
@@ -3424,6 +3428,7 @@ TEST_F(RenderWidgetHostViewAuraTest, ForwardsBeginFrameAcks) {
// Unlock the compositor again with a new CompositorFrame of correct size.
frame_size = view_rect.size();
+ local_surface_id = local_surface_id_allocator_.GenerateId();
{
cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting(
@@ -3434,7 +3439,7 @@ TEST_F(RenderWidgetHostViewAuraTest, ForwardsBeginFrameAcks) {
cc::BeginFrameAck ack(source_id, 12, 12, true);
cc::CompositorFrame frame = MakeDelegatedFrame(1.f, frame_size, view_rect);
frame.metadata.begin_frame_ack = ack;
- view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame));
+ view_->SubmitCompositorFrame(local_surface_id, std::move(frame));
view_->RunOnCompositingDidCommit();
EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_));
}
« no previous file with comments | « content/browser/renderer_host/delegated_frame_host.cc ('k') | content/renderer/android/synchronous_compositor_frame_sink.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698