| 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 |