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