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 1858 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1869 aura::Env::GetInstance()->set_last_mouse_location(gfx::Point(161, 161)); | 1869 aura::Env::GetInstance()->set_last_mouse_location(gfx::Point(161, 161)); |
1870 view_->UpdateCursorIfOverSelf(); | 1870 view_->UpdateCursorIfOverSelf(); |
1871 EXPECT_EQ(0, cursor_client.calls_to_set_cursor()); | 1871 EXPECT_EQ(0, cursor_client.calls_to_set_cursor()); |
1872 } | 1872 } |
1873 | 1873 |
1874 cc::CompositorFrame MakeDelegatedFrame(float scale_factor, | 1874 cc::CompositorFrame MakeDelegatedFrame(float scale_factor, |
1875 gfx::Size size, | 1875 gfx::Size size, |
1876 gfx::Rect damage) { | 1876 gfx::Rect damage) { |
1877 cc::CompositorFrame frame; | 1877 cc::CompositorFrame frame; |
1878 frame.metadata.device_scale_factor = scale_factor; | 1878 frame.metadata.device_scale_factor = scale_factor; |
1879 frame.metadata.begin_frame_ack = cc::BeginFrameAck(0, 1, 1, 0, true); | 1879 frame.metadata.begin_frame_ack = cc::BeginFrameAck(0, 1, 1, true); |
1880 | 1880 |
1881 std::unique_ptr<cc::RenderPass> pass = cc::RenderPass::Create(); | 1881 std::unique_ptr<cc::RenderPass> pass = cc::RenderPass::Create(); |
1882 pass->SetNew(1, gfx::Rect(size), damage, gfx::Transform()); | 1882 pass->SetNew(1, gfx::Rect(size), damage, gfx::Transform()); |
1883 frame.render_pass_list.push_back(std::move(pass)); | 1883 frame.render_pass_list.push_back(std::move(pass)); |
1884 if (!size.IsEmpty()) { | 1884 if (!size.IsEmpty()) { |
1885 cc::TransferableResource resource; | 1885 cc::TransferableResource resource; |
1886 resource.id = 1; | 1886 resource.id = 1; |
1887 frame.resource_list.push_back(std::move(resource)); | 1887 frame.resource_list.push_back(std::move(resource)); |
1888 } | 1888 } |
1889 return frame; | 1889 return frame; |
(...skipping 895 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2785 surface_manager->RegisterBeginFrameSource(&source, frame_sink_id); | 2785 surface_manager->RegisterBeginFrameSource(&source, frame_sink_id); |
2786 view_->SetNeedsBeginFrames(true); | 2786 view_->SetNeedsBeginFrames(true); |
2787 EXPECT_TRUE(observer_tracker.last_observer_); | 2787 EXPECT_TRUE(observer_tracker.last_observer_); |
2788 | 2788 |
2789 { | 2789 { |
2790 cc::BeginFrameArgs args = | 2790 cc::BeginFrameArgs args = |
2791 cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, source_id, 5u); | 2791 cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, source_id, 5u); |
2792 source.TestOnBeginFrame(args); | 2792 source.TestOnBeginFrame(args); |
2793 | 2793 |
2794 // Ack from CompositorFrame is forwarded. | 2794 // Ack from CompositorFrame is forwarded. |
2795 cc::BeginFrameAck ack(source_id, 5, 4, 0, true); | 2795 cc::BeginFrameAck ack(source_id, 5, 4, true); |
2796 cc::CompositorFrame frame = MakeDelegatedFrame(1.f, frame_size, view_rect); | 2796 cc::CompositorFrame frame = MakeDelegatedFrame(1.f, frame_size, view_rect); |
2797 frame.metadata.begin_frame_ack = ack; | 2797 frame.metadata.begin_frame_ack = ack; |
2798 view_->OnSwapCompositorFrame(0, kArbitraryLocalSurfaceId, std::move(frame)); | 2798 view_->OnSwapCompositorFrame(0, kArbitraryLocalSurfaceId, std::move(frame)); |
2799 view_->RunOnCompositingDidCommit(); | 2799 view_->RunOnCompositingDidCommit(); |
2800 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); | 2800 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); |
2801 } | 2801 } |
2802 | 2802 |
2803 { | 2803 { |
2804 cc::BeginFrameArgs args = | 2804 cc::BeginFrameArgs args = |
2805 cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, source_id, 6u); | 2805 cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, source_id, 6u); |
2806 source.TestOnBeginFrame(args); | 2806 source.TestOnBeginFrame(args); |
2807 | 2807 |
2808 // Explicit ack through OnBeginFrameDidNotSwap is forwarded. | 2808 // Explicit ack through OnBeginFrameDidNotSwap is forwarded. |
2809 cc::BeginFrameAck ack(source_id, 6, 4, 0, false); | 2809 cc::BeginFrameAck ack(source_id, 6, 4, false); |
2810 view_->OnBeginFrameDidNotSwap(ack); | 2810 view_->OnBeginFrameDidNotSwap(ack); |
2811 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); | 2811 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); |
2812 } | 2812 } |
2813 | 2813 |
2814 // Lock the compositor. Now we should drop frames and, thus, | 2814 // Lock the compositor. Now we should drop frames and, thus, |
2815 // latest_confirmed_sequence_number should not change. | 2815 // latest_confirmed_sequence_number should not change. |
2816 view_rect = gfx::Rect(150, 150); | 2816 view_rect = gfx::Rect(150, 150); |
2817 view_->SetSize(view_rect.size()); | 2817 view_->SetSize(view_rect.size()); |
2818 | 2818 |
2819 { | 2819 { |
2820 cc::BeginFrameArgs args = | 2820 cc::BeginFrameArgs args = |
2821 cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, source_id, 7u); | 2821 cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, source_id, 7u); |
2822 source.TestOnBeginFrame(args); | 2822 source.TestOnBeginFrame(args); |
2823 | 2823 |
2824 // Ack from CompositorFrame is forwarded with old | 2824 // Ack from CompositorFrame is forwarded with old |
2825 // latest_confirmed_sequence_number and without damage. | 2825 // latest_confirmed_sequence_number and without damage. |
2826 cc::BeginFrameAck ack(source_id, 7, 7, 0, true); | 2826 cc::BeginFrameAck ack(source_id, 7, 7, true); |
2827 gfx::Rect dropped_damage_rect(10, 20, 30, 40); | 2827 gfx::Rect dropped_damage_rect(10, 20, 30, 40); |
2828 cc::CompositorFrame frame = | 2828 cc::CompositorFrame frame = |
2829 MakeDelegatedFrame(1.f, frame_size, dropped_damage_rect); | 2829 MakeDelegatedFrame(1.f, frame_size, dropped_damage_rect); |
2830 frame.metadata.begin_frame_ack = ack; | 2830 frame.metadata.begin_frame_ack = ack; |
2831 view_->OnSwapCompositorFrame(0, kArbitraryLocalSurfaceId, std::move(frame)); | 2831 view_->OnSwapCompositorFrame(0, kArbitraryLocalSurfaceId, std::move(frame)); |
2832 view_->RunOnCompositingDidCommit(); | 2832 view_->RunOnCompositingDidCommit(); |
2833 ack.latest_confirmed_sequence_number = 4; | 2833 ack.latest_confirmed_sequence_number = 4; |
2834 ack.has_damage = false; | 2834 ack.has_damage = false; |
2835 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); | 2835 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); |
2836 } | 2836 } |
2837 | 2837 |
2838 // Change source_id known to the view. This should reset the | 2838 // Change source_id known to the view. This should reset the |
2839 // latest_confirmed_sequence_number tracked by the view. | 2839 // latest_confirmed_sequence_number tracked by the view. |
2840 source_id = cc::BeginFrameArgs::kManualSourceId; | 2840 source_id = cc::BeginFrameArgs::kManualSourceId; |
2841 | 2841 |
2842 { | 2842 { |
2843 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( | 2843 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( |
2844 BEGINFRAME_FROM_HERE, source_id, 10u); | 2844 BEGINFRAME_FROM_HERE, source_id, 10u); |
2845 source.TestOnBeginFrame(args); | 2845 source.TestOnBeginFrame(args); |
2846 | 2846 |
2847 // Ack from CompositorFrame is forwarded with invalid | 2847 // Ack from CompositorFrame is forwarded with invalid |
2848 // latest_confirmed_sequence_number and without damage. | 2848 // latest_confirmed_sequence_number and without damage. |
2849 cc::BeginFrameAck ack(source_id, 10, 10, 0, true); | 2849 cc::BeginFrameAck ack(source_id, 10, 10, true); |
2850 gfx::Rect dropped_damage_rect(10, 20, 30, 40); | 2850 gfx::Rect dropped_damage_rect(10, 20, 30, 40); |
2851 cc::CompositorFrame frame = | 2851 cc::CompositorFrame frame = |
2852 MakeDelegatedFrame(1.f, frame_size, dropped_damage_rect); | 2852 MakeDelegatedFrame(1.f, frame_size, dropped_damage_rect); |
2853 frame.metadata.begin_frame_ack = ack; | 2853 frame.metadata.begin_frame_ack = ack; |
2854 view_->OnSwapCompositorFrame(0, kArbitraryLocalSurfaceId, std::move(frame)); | 2854 view_->OnSwapCompositorFrame(0, kArbitraryLocalSurfaceId, std::move(frame)); |
2855 view_->RunOnCompositingDidCommit(); | 2855 view_->RunOnCompositingDidCommit(); |
2856 ack.latest_confirmed_sequence_number = | 2856 ack.latest_confirmed_sequence_number = |
2857 cc::BeginFrameArgs::kInvalidFrameNumber; | 2857 cc::BeginFrameArgs::kInvalidFrameNumber; |
2858 ack.has_damage = false; | 2858 ack.has_damage = false; |
2859 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); | 2859 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); |
2860 } | 2860 } |
2861 | 2861 |
2862 { | 2862 { |
2863 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( | 2863 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( |
2864 BEGINFRAME_FROM_HERE, source_id, 11u); | 2864 BEGINFRAME_FROM_HERE, source_id, 11u); |
2865 source.TestOnBeginFrame(args); | 2865 source.TestOnBeginFrame(args); |
2866 | 2866 |
2867 // Explicit ack through OnBeginFrameDidNotSwap is forwarded with invalid | 2867 // Explicit ack through OnBeginFrameDidNotSwap is forwarded with invalid |
2868 // latest_confirmed_sequence_number. | 2868 // latest_confirmed_sequence_number. |
2869 cc::BeginFrameAck ack(source_id, 11, 11, 0, false); | 2869 cc::BeginFrameAck ack(source_id, 11, 11, false); |
2870 view_->OnBeginFrameDidNotSwap(ack); | 2870 view_->OnBeginFrameDidNotSwap(ack); |
2871 ack.latest_confirmed_sequence_number = | 2871 ack.latest_confirmed_sequence_number = |
2872 cc::BeginFrameArgs::kInvalidFrameNumber; | 2872 cc::BeginFrameArgs::kInvalidFrameNumber; |
2873 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); | 2873 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); |
2874 } | 2874 } |
2875 | 2875 |
2876 // Unlock the compositor again with a new CompositorFrame of correct size. | 2876 // Unlock the compositor again with a new CompositorFrame of correct size. |
2877 frame_size = view_rect.size(); | 2877 frame_size = view_rect.size(); |
2878 | 2878 |
2879 { | 2879 { |
2880 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( | 2880 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( |
2881 BEGINFRAME_FROM_HERE, source_id, 12u); | 2881 BEGINFRAME_FROM_HERE, source_id, 12u); |
2882 source.TestOnBeginFrame(args); | 2882 source.TestOnBeginFrame(args); |
2883 | 2883 |
2884 // Ack from CompositorFrame is forwarded. | 2884 // Ack from CompositorFrame is forwarded. |
2885 cc::BeginFrameAck ack(source_id, 12, 12, 0, true); | 2885 cc::BeginFrameAck ack(source_id, 12, 12, true); |
2886 cc::CompositorFrame frame = MakeDelegatedFrame(1.f, frame_size, view_rect); | 2886 cc::CompositorFrame frame = MakeDelegatedFrame(1.f, frame_size, view_rect); |
2887 frame.metadata.begin_frame_ack = ack; | 2887 frame.metadata.begin_frame_ack = ack; |
2888 view_->OnSwapCompositorFrame(0, kArbitraryLocalSurfaceId, std::move(frame)); | 2888 view_->OnSwapCompositorFrame(0, kArbitraryLocalSurfaceId, std::move(frame)); |
2889 view_->RunOnCompositingDidCommit(); | 2889 view_->RunOnCompositingDidCommit(); |
2890 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); | 2890 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); |
2891 } | 2891 } |
2892 | 2892 |
2893 { | 2893 { |
2894 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( | 2894 cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( |
2895 BEGINFRAME_FROM_HERE, source_id, 13u); | 2895 BEGINFRAME_FROM_HERE, source_id, 13u); |
2896 source.TestOnBeginFrame(args); | 2896 source.TestOnBeginFrame(args); |
2897 | 2897 |
2898 // Explicit ack through OnBeginFrameDidNotSwap is forwarded. | 2898 // Explicit ack through OnBeginFrameDidNotSwap is forwarded. |
2899 cc::BeginFrameAck ack(source_id, 13, 13, 0, false); | 2899 cc::BeginFrameAck ack(source_id, 13, 13, false); |
2900 view_->OnBeginFrameDidNotSwap(ack); | 2900 view_->OnBeginFrameDidNotSwap(ack); |
2901 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); | 2901 EXPECT_EQ(ack, source.LastAckForObserver(observer_tracker.last_observer_)); |
2902 } | 2902 } |
2903 | 2903 |
2904 surface_manager->UnregisterBeginFrameSource(&source); | 2904 surface_manager->UnregisterBeginFrameSource(&source); |
2905 } | 2905 } |
2906 | 2906 |
2907 class RenderWidgetHostViewAuraCopyRequestTest | 2907 class RenderWidgetHostViewAuraCopyRequestTest |
2908 : public RenderWidgetHostViewAuraShutdownTest { | 2908 : public RenderWidgetHostViewAuraShutdownTest { |
2909 public: | 2909 public: |
(...skipping 2120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5030 // There is no composition in the beginning. | 5030 // There is no composition in the beginning. |
5031 EXPECT_FALSE(has_composition_text()); | 5031 EXPECT_FALSE(has_composition_text()); |
5032 SetHasCompositionTextToTrue(); | 5032 SetHasCompositionTextToTrue(); |
5033 view->ImeCancelComposition(); | 5033 view->ImeCancelComposition(); |
5034 // The composition must have been canceled. | 5034 // The composition must have been canceled. |
5035 EXPECT_FALSE(has_composition_text()); | 5035 EXPECT_FALSE(has_composition_text()); |
5036 } | 5036 } |
5037 } | 5037 } |
5038 | 5038 |
5039 } // namespace content | 5039 } // namespace content |
OLD | NEW |