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