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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_aura_unittest.cc

Issue 2888043004: [cc] Add and plumb CFS::DidNotProduceFrame. (Closed)
Patch Set: remove ExternalBFS::OnDidFinishFrame and related ack tracking. 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/render_widget_host_view_aura.h" 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <tuple> 10 #include <tuple>
(...skipping 3056 matching lines...) Expand 10 before | Expand all | Expand 10 after
3067 void OnAddObserver(cc::BeginFrameObserver* obs) override { 3067 void OnAddObserver(cc::BeginFrameObserver* obs) override {
3068 last_observer_ = obs; 3068 last_observer_ = obs;
3069 } 3069 }
3070 void OnRemoveObserver(cc::BeginFrameObserver* obs) override {} 3070 void OnRemoveObserver(cc::BeginFrameObserver* obs) override {}
3071 3071
3072 cc::BeginFrameObserver* last_observer_ = nullptr; 3072 cc::BeginFrameObserver* last_observer_ = nullptr;
3073 }; 3073 };
3074 } // namespace 3074 } // namespace
3075 3075
3076 // Tests that BeginFrameAcks are forwarded correctly from the 3076 // Tests that BeginFrameAcks are forwarded correctly from the
3077 // SwapCompositorFrame and OnBeginFrameDidNotSwap IPCs through 3077 // SwapCompositorFrame and OnBeginFrameDidNotProduceFrame IPCs through
3078 // DelegatedFrameHost and its CompositorFrameSinkSupport. 3078 // DelegatedFrameHost and its CompositorFrameSinkSupport.
3079 TEST_F(RenderWidgetHostViewAuraTest, ForwardsBeginFrameAcks) { 3079 TEST_F(RenderWidgetHostViewAuraTest, ForwardsBeginFrameAcks) {
3080 gfx::Rect view_rect(100, 100); 3080 gfx::Rect view_rect(100, 100);
3081 gfx::Size frame_size = view_rect.size(); 3081 gfx::Size frame_size = view_rect.size();
3082 3082
3083 view_->InitAsChild(nullptr); 3083 view_->InitAsChild(nullptr);
3084 aura::client::ParentWindowWithContext( 3084 aura::client::ParentWindowWithContext(
3085 view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(), 3085 view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(),
3086 gfx::Rect()); 3086 gfx::Rect());
3087 view_->SetSize(view_rect.size()); 3087 view_->SetSize(view_rect.size());
(...skipping 27 matching lines...) Expand all
3115 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame)); 3115 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame));
3116 view_->RunOnCompositingDidCommit(); 3116 view_->RunOnCompositingDidCommit();
3117 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); 3117 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_));
3118 } 3118 }
3119 3119
3120 { 3120 {
3121 cc::BeginFrameArgs args = 3121 cc::BeginFrameArgs args =
3122 cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, source_id, 6u); 3122 cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, source_id, 6u);
3123 source.TestOnBeginFrame(args); 3123 source.TestOnBeginFrame(args);
3124 3124
3125 // Explicit ack through OnBeginFrameDidNotSwap is forwarded. 3125 // Explicit ack through OnBeginFrameDidNotProduceFrame is forwarded.
3126 cc::BeginFrameAck ack(source_id, 6, 4, false); 3126 cc::BeginFrameAck ack(source_id, 6, 4, false);
3127 view_->OnBeginFrameDidNotSwap(ack); 3127 view_->OnBeginFrameDidNotProduceFrame(ack);
3128 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); 3128 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_));
3129 } 3129 }
3130 3130
3131 // Lock the compositor. Now we should drop frames and, thus, 3131 // Lock the compositor. Now we should drop frames and, thus,
3132 // latest_confirmed_sequence_number should not change. 3132 // latest_confirmed_sequence_number should not change.
3133 view_rect = gfx::Rect(150, 150); 3133 view_rect = gfx::Rect(150, 150);
3134 view_->SetSize(view_rect.size()); 3134 view_->SetSize(view_rect.size());
3135 3135
3136 { 3136 {
3137 cc::BeginFrameArgs args = 3137 cc::BeginFrameArgs args =
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
3174 cc::BeginFrameArgs::kInvalidFrameNumber; 3174 cc::BeginFrameArgs::kInvalidFrameNumber;
3175 ack.has_damage = false; 3175 ack.has_damage = false;
3176 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); 3176 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_));
3177 } 3177 }
3178 3178
3179 { 3179 {
3180 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( 3180 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting(
3181 BEGINFRAME_FROM_HERE, source_id, 11u); 3181 BEGINFRAME_FROM_HERE, source_id, 11u);
3182 source.TestOnBeginFrame(args); 3182 source.TestOnBeginFrame(args);
3183 3183
3184 // Explicit ack through OnBeginFrameDidNotSwap is forwarded with invalid 3184 // Explicit ack through OnBeginFrameDidNotProduceFrame is forwarded with
3185 // latest_confirmed_sequence_number. 3185 // invalid latest_confirmed_sequence_number.
3186 cc::BeginFrameAck ack(source_id, 11, 11, false); 3186 cc::BeginFrameAck ack(source_id, 11, 11, false);
3187 view_->OnBeginFrameDidNotSwap(ack); 3187 view_->OnBeginFrameDidNotProduceFrame(ack);
3188 ack.latest_confirmed_sequence_number = 3188 ack.latest_confirmed_sequence_number =
3189 cc::BeginFrameArgs::kInvalidFrameNumber; 3189 cc::BeginFrameArgs::kInvalidFrameNumber;
3190 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); 3190 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_));
3191 } 3191 }
3192 3192
3193 // Unlock the compositor again with a new CompositorFrame of correct size. 3193 // Unlock the compositor again with a new CompositorFrame of correct size.
3194 frame_size = view_rect.size(); 3194 frame_size = view_rect.size();
3195 3195
3196 { 3196 {
3197 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( 3197 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting(
3198 BEGINFRAME_FROM_HERE, source_id, 12u); 3198 BEGINFRAME_FROM_HERE, source_id, 12u);
3199 source.TestOnBeginFrame(args); 3199 source.TestOnBeginFrame(args);
3200 3200
3201 // Ack from CompositorFrame is forwarded. 3201 // Ack from CompositorFrame is forwarded.
3202 cc::BeginFrameAck ack(source_id, 12, 12, true); 3202 cc::BeginFrameAck ack(source_id, 12, 12, true);
3203 cc::CompositorFrame frame = MakeDelegatedFrame(1.f, frame_size, view_rect); 3203 cc::CompositorFrame frame = MakeDelegatedFrame(1.f, frame_size, view_rect);
3204 frame.metadata.begin_frame_ack = ack; 3204 frame.metadata.begin_frame_ack = ack;
3205 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame)); 3205 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame));
3206 view_->RunOnCompositingDidCommit(); 3206 view_->RunOnCompositingDidCommit();
3207 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); 3207 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_));
3208 } 3208 }
3209 3209
3210 { 3210 {
3211 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( 3211 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting(
3212 BEGINFRAME_FROM_HERE, source_id, 13u); 3212 BEGINFRAME_FROM_HERE, source_id, 13u);
3213 source.TestOnBeginFrame(args); 3213 source.TestOnBeginFrame(args);
3214 3214
3215 // Explicit ack through OnBeginFrameDidNotSwap is forwarded. 3215 // Explicit ack through OnBeginFrameDidNotProduceFrame is forwarded.
3216 cc::BeginFrameAck ack(source_id, 13, 13, false); 3216 cc::BeginFrameAck ack(source_id, 13, 13, false);
3217 view_->OnBeginFrameDidNotSwap(ack); 3217 view_->OnBeginFrameDidNotProduceFrame(ack);
3218 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); 3218 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_));
3219 } 3219 }
3220 3220
3221 surface_manager->UnregisterBeginFrameSource(&source); 3221 surface_manager->UnregisterBeginFrameSource(&source);
3222 } 3222 }
3223 3223
3224 class RenderWidgetHostViewAuraCopyRequestTest 3224 class RenderWidgetHostViewAuraCopyRequestTest
3225 : public RenderWidgetHostViewAuraShutdownTest { 3225 : public RenderWidgetHostViewAuraShutdownTest {
3226 public: 3226 public:
3227 RenderWidgetHostViewAuraCopyRequestTest() 3227 RenderWidgetHostViewAuraCopyRequestTest()
(...skipping 2319 matching lines...) Expand 10 before | Expand all | Expand 10 after
5547 // There is no composition in the beginning. 5547 // There is no composition in the beginning.
5548 EXPECT_FALSE(has_composition_text()); 5548 EXPECT_FALSE(has_composition_text());
5549 SetHasCompositionTextToTrue(); 5549 SetHasCompositionTextToTrue();
5550 view->ImeCancelComposition(); 5550 view->ImeCancelComposition();
5551 // The composition must have been canceled. 5551 // The composition must have been canceled.
5552 EXPECT_FALSE(has_composition_text()); 5552 EXPECT_FALSE(has_composition_text());
5553 } 5553 }
5554 } 5554 }
5555 5555
5556 } // namespace content 5556 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698