Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(215)

Side by Side Diff: content/browser/renderer_host/render_widget_host_unittest.cc

Issue 2835403004: Revert "Use MojoCompositorFrameSink in RendererCompositorFrameSink"
Patch Set: Rebased Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <memory> 8 #include <memory>
9 #include <tuple> 9 #include <tuple>
10 10
(...skipping 16 matching lines...) Expand all
27 #include "content/common/input/synthetic_web_input_event_builders.h" 27 #include "content/common/input/synthetic_web_input_event_builders.h"
28 #include "content/common/input_messages.h" 28 #include "content/common/input_messages.h"
29 #include "content/common/resize_params.h" 29 #include "content/common/resize_params.h"
30 #include "content/common/view_messages.h" 30 #include "content/common/view_messages.h"
31 #include "content/public/browser/keyboard_event_processing_result.h" 31 #include "content/public/browser/keyboard_event_processing_result.h"
32 #include "content/public/common/content_features.h" 32 #include "content/public/common/content_features.h"
33 #include "content/public/common/content_switches.h" 33 #include "content/public/common/content_switches.h"
34 #include "content/public/test/mock_render_process_host.h" 34 #include "content/public/test/mock_render_process_host.h"
35 #include "content/public/test/test_browser_context.h" 35 #include "content/public/test/test_browser_context.h"
36 #include "content/public/test/test_browser_thread_bundle.h" 36 #include "content/public/test/test_browser_thread_bundle.h"
37 #include "content/test/fake_renderer_compositor_frame_sink.h"
38 #include "content/test/test_render_view_host.h" 37 #include "content/test/test_render_view_host.h"
39 #include "mojo/public/cpp/bindings/interface_request.h"
40 #include "testing/gtest/include/gtest/gtest.h" 38 #include "testing/gtest/include/gtest/gtest.h"
41 #include "ui/display/screen.h" 39 #include "ui/display/screen.h"
42 #include "ui/events/base_event_utils.h" 40 #include "ui/events/base_event_utils.h"
43 #include "ui/events/blink/web_input_event_traits.h" 41 #include "ui/events/blink/web_input_event_traits.h"
44 #include "ui/events/keycodes/keyboard_codes.h" 42 #include "ui/events/keycodes/keyboard_codes.h"
45 #include "ui/gfx/canvas.h" 43 #include "ui/gfx/canvas.h"
46 44
47 #if defined(OS_ANDROID) 45 #if defined(OS_ANDROID)
48 #include "content/browser/renderer_host/render_widget_host_view_android.h" 46 #include "content/browser/renderer_host/render_widget_host_view_android.h"
49 #include "ui/android/screen_android.h" 47 #include "ui/android/screen_android.h"
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after
557 display::Screen::SetScreenInstance(screen_.get()); 555 display::Screen::SetScreenInstance(screen_.get());
558 #endif 556 #endif
559 host_.reset(new MockRenderWidgetHost(delegate_.get(), process_, 557 host_.reset(new MockRenderWidgetHost(delegate_.get(), process_,
560 process_->GetNextRoutingID())); 558 process_->GetNextRoutingID()));
561 view_.reset(new TestView(host_.get())); 559 view_.reset(new TestView(host_.get()));
562 ConfigureView(view_.get()); 560 ConfigureView(view_.get());
563 host_->SetView(view_.get()); 561 host_->SetView(view_.get());
564 SetInitialRenderSizeParams(); 562 SetInitialRenderSizeParams();
565 host_->Init(); 563 host_->Init();
566 host_->DisableGestureDebounce(); 564 host_->DisableGestureDebounce();
567
568 cc::mojom::MojoCompositorFrameSinkPtr sink;
569 cc::mojom::MojoCompositorFrameSinkRequest sink_request =
570 mojo::MakeRequest(&sink);
571 cc::mojom::MojoCompositorFrameSinkClientRequest client_request =
572 mojo::MakeRequest(&renderer_compositor_frame_sink_ptr_);
573 renderer_compositor_frame_sink_ =
574 base::MakeUnique<FakeRendererCompositorFrameSink>(
575 std::move(sink), std::move(client_request));
576 host_->RequestMojoCompositorFrameSink(
577 std::move(sink_request),
578 std::move(renderer_compositor_frame_sink_ptr_));
579 } 565 }
580 566
581 void TearDown() override { 567 void TearDown() override {
582 view_.reset(); 568 view_.reset();
583 host_.reset(); 569 host_.reset();
584 delegate_.reset(); 570 delegate_.reset();
585 process_ = NULL; 571 process_ = NULL;
586 browser_context_.reset(); 572 browser_context_.reset();
587 573
588 #if defined(USE_AURA) 574 #if defined(USE_AURA)
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
737 RenderWidgetHostProcess* process_; // Deleted automatically by the widget. 723 RenderWidgetHostProcess* process_; // Deleted automatically by the widget.
738 std::unique_ptr<MockRenderWidgetHostDelegate> delegate_; 724 std::unique_ptr<MockRenderWidgetHostDelegate> delegate_;
739 std::unique_ptr<MockRenderWidgetHost> host_; 725 std::unique_ptr<MockRenderWidgetHost> host_;
740 std::unique_ptr<TestView> view_; 726 std::unique_ptr<TestView> view_;
741 std::unique_ptr<display::Screen> screen_; 727 std::unique_ptr<display::Screen> screen_;
742 bool handle_key_press_event_; 728 bool handle_key_press_event_;
743 bool handle_mouse_event_; 729 bool handle_mouse_event_;
744 double last_simulated_event_time_seconds_; 730 double last_simulated_event_time_seconds_;
745 double simulated_event_time_delta_seconds_; 731 double simulated_event_time_delta_seconds_;
746 IPC::TestSink* sink_; 732 IPC::TestSink* sink_;
747 std::unique_ptr<FakeRendererCompositorFrameSink>
748 renderer_compositor_frame_sink_;
749 733
750 private: 734 private:
751 SyntheticWebTouchEvent touch_event_; 735 SyntheticWebTouchEvent touch_event_;
752 736
753 TestBrowserThreadBundle thread_bundle_; 737 TestBrowserThreadBundle thread_bundle_;
754 base::test::ScopedFeatureList feature_list_; 738 base::test::ScopedFeatureList feature_list_;
755 cc::mojom::MojoCompositorFrameSinkClientPtr
756 renderer_compositor_frame_sink_ptr_;
757 739
758 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostTest); 740 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostTest);
759 }; 741 };
760 742
761 #if GTEST_HAS_PARAM_TEST 743 #if GTEST_HAS_PARAM_TEST
762 // RenderWidgetHostWithSourceTest ---------------------------------------------- 744 // RenderWidgetHostWithSourceTest ----------------------------------------------
763 745
764 // This is for tests that are to be run for all source devices. 746 // This is for tests that are to be run for all source devices.
765 class RenderWidgetHostWithSourceTest 747 class RenderWidgetHostWithSourceTest
766 : public RenderWidgetHostTest, 748 : public RenderWidgetHostTest,
(...skipping 1174 matching lines...) Expand 10 before | Expand all | Expand 10 after
1941 SimulateGestureEventWithLatencyInfo(WebInputEvent::kGestureScrollUpdate, 1923 SimulateGestureEventWithLatencyInfo(WebInputEvent::kGestureScrollUpdate,
1942 blink::kWebGestureDeviceTouchscreen, 1924 blink::kWebGestureDeviceTouchscreen,
1943 ui::LatencyInfo()); 1925 ui::LatencyInfo());
1944 1926
1945 // Tests RWHI::ForwardWheelEventWithLatencyInfo(). 1927 // Tests RWHI::ForwardWheelEventWithLatencyInfo().
1946 SimulateWheelEventWithLatencyInfo(-5, 0, 0, true, ui::LatencyInfo()); 1928 SimulateWheelEventWithLatencyInfo(-5, 0, 0, true, ui::LatencyInfo());
1947 1929
1948 ASSERT_FALSE(host_->input_router()->HasPendingEvents()); 1930 ASSERT_FALSE(host_->input_router()->HasPendingEvents());
1949 } 1931 }
1950 1932
1933 // Checks whether RWHI properly keeps track of the last compositor_frame_sink_id
1934 // and notifies the view_ when it changes.
1935 TEST_F(RenderWidgetHostTest, CompositorFrameSinkIdChanges) {
1936 const gfx::Size frame_size(50, 50);
1937 const cc::LocalSurfaceId local_surface_id(1,
1938 base::UnguessableToken::Create());
1939
1940 // Ignore any IPC message sent so far.
1941 sink_->ClearMessages();
1942
1943 // Submit a frame with compositor_frame_sink_id=1
1944 cc::CompositorFrame frame = MakeCompositorFrame(1.f, frame_size);
1945 host_->OnMessageReceived(
1946 ViewHostMsg_SwapCompositorFrame(0, 1, local_surface_id, frame));
1947
1948 // Send an ack. The right compositor_frame_sink_id must be sent.
1949 host_->SendReclaimCompositorResources(true /* is_swap_ack */,
1950 cc::ReturnedResourceArray());
1951 ASSERT_EQ(1u, sink_->message_count());
1952 {
1953 const IPC::Message* msg = sink_->GetMessageAt(0);
1954 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type());
1955 ViewMsg_ReclaimCompositorResources::Param params;
1956 ViewMsg_ReclaimCompositorResources::Read(msg, &params);
1957 EXPECT_EQ(1u, std::get<0>(params)); // compositor_frame_sink_id
1958 }
1959 sink_->ClearMessages();
1960
1961 // Submit a frame with compositor_frame_sink_id=2. Verify that view_ is
1962 // notified of the change in id.
1963 view_->reset_did_change_compositor_frame_sink();
1964 frame = MakeCompositorFrame(1.f, frame_size);
1965 host_->OnMessageReceived(
1966 ViewHostMsg_SwapCompositorFrame(2, 2, local_surface_id, frame));
1967 EXPECT_TRUE(view_->did_change_compositor_frame_sink());
1968
1969 // Send an ack. The right compositor_frame_sink_id must be sent.
1970 host_->SendReclaimCompositorResources(true /* is_swap_ack */,
1971 cc::ReturnedResourceArray());
1972 ASSERT_EQ(1u, sink_->message_count());
1973 {
1974 const IPC::Message* msg = sink_->GetMessageAt(0);
1975 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type());
1976 ViewMsg_ReclaimCompositorResources::Param params;
1977 ViewMsg_ReclaimCompositorResources::Read(msg, &params);
1978 EXPECT_EQ(2u, std::get<0>(params)); // compositor_frame_sink_id
1979 }
1980 sink_->ClearMessages();
1981 }
1982
1951 // Check that if messages of a frame arrive earlier than the frame itself, we 1983 // Check that if messages of a frame arrive earlier than the frame itself, we
1952 // queue the messages until the frame arrives and then process them. 1984 // queue the messages until the frame arrives and then process them.
1953 TEST_F(RenderWidgetHostTest, FrameToken_MessageThenFrame) { 1985 TEST_F(RenderWidgetHostTest, FrameToken_MessageThenFrame) {
1954 const uint32_t frame_token = 99; 1986 const uint32_t frame_token = 99;
1955 const gfx::Size frame_size(50, 50); 1987 const gfx::Size frame_size(50, 50);
1956 const cc::LocalSurfaceId local_surface_id(1, 1988 const cc::LocalSurfaceId local_surface_id(1,
1957 base::UnguessableToken::Create()); 1989 base::UnguessableToken::Create());
1958 std::vector<IPC::Message> messages; 1990 std::vector<IPC::Message> messages;
1959 messages.push_back(ViewHostMsg_DidFirstVisuallyNonEmptyPaint(5)); 1991 messages.push_back(ViewHostMsg_DidFirstVisuallyNonEmptyPaint(5));
1960 1992
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
2154 EXPECT_EQ(0u, host_->processed_frame_messages_count()); 2186 EXPECT_EQ(0u, host_->processed_frame_messages_count());
2155 2187
2156 frame = MakeCompositorFrame(1.f, frame_size); 2188 frame = MakeCompositorFrame(1.f, frame_size);
2157 frame.metadata.frame_token = frame_token3; 2189 frame.metadata.frame_token = frame_token3;
2158 host_->SubmitCompositorFrame(local_surface_id, std::move(frame)); 2190 host_->SubmitCompositorFrame(local_surface_id, std::move(frame));
2159 EXPECT_EQ(0u, host_->queued_messages_.size()); 2191 EXPECT_EQ(0u, host_->queued_messages_.size());
2160 EXPECT_EQ(1u, host_->processed_frame_messages_count()); 2192 EXPECT_EQ(1u, host_->processed_frame_messages_count());
2161 } 2193 }
2162 2194
2163 } // namespace content 2195 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698