OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |