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 3288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3299 void OnAddObserver(cc::BeginFrameObserver* obs) override { | 3299 void OnAddObserver(cc::BeginFrameObserver* obs) override { |
3300 last_observer_ = obs; | 3300 last_observer_ = obs; |
3301 } | 3301 } |
3302 void OnRemoveObserver(cc::BeginFrameObserver* obs) override {} | 3302 void OnRemoveObserver(cc::BeginFrameObserver* obs) override {} |
3303 | 3303 |
3304 cc::BeginFrameObserver* last_observer_ = nullptr; | 3304 cc::BeginFrameObserver* last_observer_ = nullptr; |
3305 }; | 3305 }; |
3306 } // namespace | 3306 } // namespace |
3307 | 3307 |
3308 // Tests that BeginFrameAcks are forwarded correctly from the | 3308 // Tests that BeginFrameAcks are forwarded correctly from the |
3309 // SwapCompositorFrame and OnBeginFrameDidNotSwap IPCs through | 3309 // SwapCompositorFrame and OnDidNotProduceFrame IPCs through DelegatedFrameHost |
3310 // DelegatedFrameHost and its CompositorFrameSinkSupport. | 3310 // and its CompositorFrameSinkSupport. |
3311 TEST_F(RenderWidgetHostViewAuraTest, ForwardsBeginFrameAcks) { | 3311 TEST_F(RenderWidgetHostViewAuraTest, ForwardsBeginFrameAcks) { |
3312 gfx::Rect view_rect(100, 100); | 3312 gfx::Rect view_rect(100, 100); |
3313 gfx::Size frame_size = view_rect.size(); | 3313 gfx::Size frame_size = view_rect.size(); |
3314 | 3314 |
3315 view_->InitAsChild(nullptr); | 3315 view_->InitAsChild(nullptr); |
3316 aura::client::ParentWindowWithContext( | 3316 aura::client::ParentWindowWithContext( |
3317 view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(), | 3317 view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(), |
3318 gfx::Rect()); | 3318 gfx::Rect()); |
3319 view_->SetSize(view_rect.size()); | 3319 view_->SetSize(view_rect.size()); |
3320 | 3320 |
(...skipping 26 matching lines...) Expand all Loading... |
3347 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame)); | 3347 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame)); |
3348 view_->RunOnCompositingDidCommit(); | 3348 view_->RunOnCompositingDidCommit(); |
3349 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); | 3349 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); |
3350 } | 3350 } |
3351 | 3351 |
3352 { | 3352 { |
3353 cc::BeginFrameArgs args = | 3353 cc::BeginFrameArgs args = |
3354 cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, source_id, 6u); | 3354 cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, source_id, 6u); |
3355 source.TestOnBeginFrame(args); | 3355 source.TestOnBeginFrame(args); |
3356 | 3356 |
3357 // Explicit ack through OnBeginFrameDidNotSwap is forwarded. | 3357 // Explicit ack through OnDidNotProduceFrame is forwarded. |
3358 cc::BeginFrameAck ack(source_id, 6, 4, false); | 3358 cc::BeginFrameAck ack(source_id, 6, 4, false); |
3359 view_->OnBeginFrameDidNotSwap(ack); | 3359 view_->OnDidNotProduceFrame(ack); |
3360 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); | 3360 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); |
3361 } | 3361 } |
3362 | 3362 |
3363 // Lock the compositor. Now we should drop frames and, thus, | 3363 // Lock the compositor. Now we should drop frames and, thus, |
3364 // latest_confirmed_sequence_number should not change. | 3364 // latest_confirmed_sequence_number should not change. |
3365 view_rect = gfx::Rect(150, 150); | 3365 view_rect = gfx::Rect(150, 150); |
3366 view_->SetSize(view_rect.size()); | 3366 view_->SetSize(view_rect.size()); |
3367 | 3367 |
3368 { | 3368 { |
3369 cc::BeginFrameArgs args = | 3369 cc::BeginFrameArgs args = |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3406 cc::BeginFrameArgs::kInvalidFrameNumber; | 3406 cc::BeginFrameArgs::kInvalidFrameNumber; |
3407 ack.has_damage = false; | 3407 ack.has_damage = false; |
3408 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); | 3408 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); |
3409 } | 3409 } |
3410 | 3410 |
3411 { | 3411 { |
3412 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( | 3412 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( |
3413 BEGINFRAME_FROM_HERE, source_id, 11u); | 3413 BEGINFRAME_FROM_HERE, source_id, 11u); |
3414 source.TestOnBeginFrame(args); | 3414 source.TestOnBeginFrame(args); |
3415 | 3415 |
3416 // Explicit ack through OnBeginFrameDidNotSwap is forwarded with invalid | 3416 // Explicit ack through OnDidNotProduceFrame is forwarded with invalid |
3417 // latest_confirmed_sequence_number. | 3417 // latest_confirmed_sequence_number. |
3418 cc::BeginFrameAck ack(source_id, 11, 11, false); | 3418 cc::BeginFrameAck ack(source_id, 11, 11, false); |
3419 view_->OnBeginFrameDidNotSwap(ack); | 3419 view_->OnDidNotProduceFrame(ack); |
3420 ack.latest_confirmed_sequence_number = | 3420 ack.latest_confirmed_sequence_number = |
3421 cc::BeginFrameArgs::kInvalidFrameNumber; | 3421 cc::BeginFrameArgs::kInvalidFrameNumber; |
3422 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); | 3422 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); |
3423 } | 3423 } |
3424 | 3424 |
3425 // Unlock the compositor again with a new CompositorFrame of correct size. | 3425 // Unlock the compositor again with a new CompositorFrame of correct size. |
3426 frame_size = view_rect.size(); | 3426 frame_size = view_rect.size(); |
3427 | 3427 |
3428 { | 3428 { |
3429 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( | 3429 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( |
3430 BEGINFRAME_FROM_HERE, source_id, 12u); | 3430 BEGINFRAME_FROM_HERE, source_id, 12u); |
3431 source.TestOnBeginFrame(args); | 3431 source.TestOnBeginFrame(args); |
3432 | 3432 |
3433 // Ack from CompositorFrame is forwarded. | 3433 // Ack from CompositorFrame is forwarded. |
3434 cc::BeginFrameAck ack(source_id, 12, 12, true); | 3434 cc::BeginFrameAck ack(source_id, 12, 12, true); |
3435 cc::CompositorFrame frame = MakeDelegatedFrame(1.f, frame_size, view_rect); | 3435 cc::CompositorFrame frame = MakeDelegatedFrame(1.f, frame_size, view_rect); |
3436 frame.metadata.begin_frame_ack = ack; | 3436 frame.metadata.begin_frame_ack = ack; |
3437 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame)); | 3437 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame)); |
3438 view_->RunOnCompositingDidCommit(); | 3438 view_->RunOnCompositingDidCommit(); |
3439 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); | 3439 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); |
3440 } | 3440 } |
3441 | 3441 |
3442 { | 3442 { |
3443 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( | 3443 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( |
3444 BEGINFRAME_FROM_HERE, source_id, 13u); | 3444 BEGINFRAME_FROM_HERE, source_id, 13u); |
3445 source.TestOnBeginFrame(args); | 3445 source.TestOnBeginFrame(args); |
3446 | 3446 |
3447 // Explicit ack through OnBeginFrameDidNotSwap is forwarded. | 3447 // Explicit ack through OnDidNotProduceFrame is forwarded. |
3448 cc::BeginFrameAck ack(source_id, 13, 13, false); | 3448 cc::BeginFrameAck ack(source_id, 13, 13, false); |
3449 view_->OnBeginFrameDidNotSwap(ack); | 3449 view_->OnDidNotProduceFrame(ack); |
3450 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); | 3450 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); |
3451 } | 3451 } |
3452 | 3452 |
3453 surface_manager->UnregisterBeginFrameSource(&source); | 3453 surface_manager->UnregisterBeginFrameSource(&source); |
3454 } | 3454 } |
3455 | 3455 |
3456 class RenderWidgetHostViewAuraCopyRequestTest | 3456 class RenderWidgetHostViewAuraCopyRequestTest |
3457 : public RenderWidgetHostViewAuraShutdownTest { | 3457 : public RenderWidgetHostViewAuraShutdownTest { |
3458 public: | 3458 public: |
3459 RenderWidgetHostViewAuraCopyRequestTest() | 3459 RenderWidgetHostViewAuraCopyRequestTest() |
(...skipping 2425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5885 // There is no composition in the beginning. | 5885 // There is no composition in the beginning. |
5886 EXPECT_FALSE(has_composition_text()); | 5886 EXPECT_FALSE(has_composition_text()); |
5887 SetHasCompositionTextToTrue(); | 5887 SetHasCompositionTextToTrue(); |
5888 view->ImeCancelComposition(); | 5888 view->ImeCancelComposition(); |
5889 // The composition must have been canceled. | 5889 // The composition must have been canceled. |
5890 EXPECT_FALSE(has_composition_text()); | 5890 EXPECT_FALSE(has_composition_text()); |
5891 } | 5891 } |
5892 } | 5892 } |
5893 | 5893 |
5894 } // namespace content | 5894 } // namespace content |
OLD | NEW |