| 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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 #include "content/common/input_messages.h" | 54 #include "content/common/input_messages.h" |
| 55 #include "content/common/text_input_state.h" | 55 #include "content/common/text_input_state.h" |
| 56 #include "content/common/view_messages.h" | 56 #include "content/common/view_messages.h" |
| 57 #include "content/public/browser/keyboard_event_processing_result.h" | 57 #include "content/public/browser/keyboard_event_processing_result.h" |
| 58 #include "content/public/browser/render_widget_host_view.h" | 58 #include "content/public/browser/render_widget_host_view.h" |
| 59 #include "content/public/browser/web_contents_view_delegate.h" | 59 #include "content/public/browser/web_contents_view_delegate.h" |
| 60 #include "content/public/common/content_features.h" | 60 #include "content/public/common/content_features.h" |
| 61 #include "content/public/common/context_menu_params.h" | 61 #include "content/public/common/context_menu_params.h" |
| 62 #include "content/public/test/mock_render_process_host.h" | 62 #include "content/public/test/mock_render_process_host.h" |
| 63 #include "content/public/test/test_browser_context.h" | 63 #include "content/public/test/test_browser_context.h" |
| 64 #include "content/test/fake_renderer_compositor_frame_sink.h" |
| 64 #include "content/test/test_render_view_host.h" | 65 #include "content/test/test_render_view_host.h" |
| 65 #include "content/test/test_web_contents.h" | 66 #include "content/test/test_web_contents.h" |
| 66 #include "ipc/ipc_message.h" | 67 #include "ipc/ipc_message.h" |
| 67 #include "ipc/ipc_test_sink.h" | 68 #include "ipc/ipc_test_sink.h" |
| 68 #include "media/base/video_frame.h" | 69 #include "media/base/video_frame.h" |
| 69 #include "testing/gmock/include/gmock/gmock.h" | 70 #include "testing/gmock/include/gmock/gmock.h" |
| 70 #include "testing/gtest/include/gtest/gtest.h" | 71 #include "testing/gtest/include/gtest/gtest.h" |
| 71 #include "ui/aura/client/aura_constants.h" | 72 #include "ui/aura/client/aura_constants.h" |
| 72 #include "ui/aura/client/screen_position_client.h" | 73 #include "ui/aura/client/screen_position_client.h" |
| 73 #include "ui/aura/client/window_parenting_client.h" | 74 #include "ui/aura/client/window_parenting_client.h" |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 405 | 406 |
| 406 class FakeRenderWidgetHostViewAura : public RenderWidgetHostViewAura { | 407 class FakeRenderWidgetHostViewAura : public RenderWidgetHostViewAura { |
| 407 public: | 408 public: |
| 408 FakeRenderWidgetHostViewAura(RenderWidgetHost* widget, | 409 FakeRenderWidgetHostViewAura(RenderWidgetHost* widget, |
| 409 bool is_guest_view_hack) | 410 bool is_guest_view_hack) |
| 410 : RenderWidgetHostViewAura(widget, is_guest_view_hack), | 411 : RenderWidgetHostViewAura(widget, is_guest_view_hack), |
| 411 delegated_frame_host_client_( | 412 delegated_frame_host_client_( |
| 412 new FakeDelegatedFrameHostClientAura(this)) { | 413 new FakeDelegatedFrameHostClientAura(this)) { |
| 413 InstallDelegatedFrameHostClient( | 414 InstallDelegatedFrameHostClient( |
| 414 this, base::WrapUnique(delegated_frame_host_client_)); | 415 this, base::WrapUnique(delegated_frame_host_client_)); |
| 416 CreateNewRendererCompositorFrameSink(); |
| 415 } | 417 } |
| 416 | 418 |
| 417 ~FakeRenderWidgetHostViewAura() override {} | 419 ~FakeRenderWidgetHostViewAura() override {} |
| 418 | 420 |
| 421 void CreateNewRendererCompositorFrameSink() { |
| 422 cc::mojom::MojoCompositorFrameSinkPtr sink; |
| 423 cc::mojom::MojoCompositorFrameSinkRequest sink_request = |
| 424 mojo::MakeRequest(&sink); |
| 425 cc::mojom::MojoCompositorFrameSinkClientPtr client; |
| 426 cc::mojom::MojoCompositorFrameSinkClientRequest client_request = |
| 427 mojo::MakeRequest(&client); |
| 428 renderer_compositor_frame_sink_ = |
| 429 base::MakeUnique<FakeRendererCompositorFrameSink>( |
| 430 std::move(sink), std::move(client_request)); |
| 431 DidCreateNewRendererCompositorFrameSink( |
| 432 renderer_compositor_frame_sink_.get()); |
| 433 } |
| 434 |
| 419 void DisableResizeLock() { | 435 void DisableResizeLock() { |
| 420 delegated_frame_host_client_->DisableResizeLock(); | 436 delegated_frame_host_client_->DisableResizeLock(); |
| 421 } | 437 } |
| 422 | 438 |
| 423 void UseFakeDispatcher() { | 439 void UseFakeDispatcher() { |
| 424 dispatcher_ = new FakeWindowEventDispatcher(window()->GetHost()); | 440 dispatcher_ = new FakeWindowEventDispatcher(window()->GetHost()); |
| 425 std::unique_ptr<aura::WindowEventDispatcher> dispatcher(dispatcher_); | 441 std::unique_ptr<aura::WindowEventDispatcher> dispatcher(dispatcher_); |
| 426 aura::test::SetHostDispatcher(window()->GetHost(), std::move(dispatcher)); | 442 aura::test::SetHostDispatcher(window()->GetHost(), std::move(dispatcher)); |
| 427 } | 443 } |
| 428 | 444 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 470 bool resize_locked() const { | 486 bool resize_locked() const { |
| 471 return delegated_frame_host_client_->resize_locked(); | 487 return delegated_frame_host_client_->resize_locked(); |
| 472 } | 488 } |
| 473 bool compositor_locked() const { | 489 bool compositor_locked() const { |
| 474 return delegated_frame_host_client_->compositor_locked(); | 490 return delegated_frame_host_client_->compositor_locked(); |
| 475 } | 491 } |
| 476 | 492 |
| 477 gfx::Size last_frame_size_; | 493 gfx::Size last_frame_size_; |
| 478 std::unique_ptr<cc::CopyOutputRequest> last_copy_request_; | 494 std::unique_ptr<cc::CopyOutputRequest> last_copy_request_; |
| 479 FakeWindowEventDispatcher* dispatcher_; | 495 FakeWindowEventDispatcher* dispatcher_; |
| 496 std::unique_ptr<FakeRendererCompositorFrameSink> |
| 497 renderer_compositor_frame_sink_; |
| 480 | 498 |
| 481 private: | 499 private: |
| 482 FakeDelegatedFrameHostClientAura* delegated_frame_host_client_; | 500 FakeDelegatedFrameHostClientAura* delegated_frame_host_client_; |
| 483 | 501 |
| 484 DISALLOW_COPY_AND_ASSIGN(FakeRenderWidgetHostViewAura); | 502 DISALLOW_COPY_AND_ASSIGN(FakeRenderWidgetHostViewAura); |
| 485 }; | 503 }; |
| 486 | 504 |
| 487 // A layout manager that always resizes a child to the root window size. | 505 // A layout manager that always resizes a child to the root window size. |
| 488 class FullscreenLayoutManager : public aura::LayoutManager { | 506 class FullscreenLayoutManager : public aura::LayoutManager { |
| 489 public: | 507 public: |
| (...skipping 1554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2044 gfx::Rect()); | 2062 gfx::Rect()); |
| 2045 view_->SetSize(view_size); | 2063 view_->SetSize(view_size); |
| 2046 view_->Show(); | 2064 view_->Show(); |
| 2047 sink_->ClearMessages(); | 2065 sink_->ClearMessages(); |
| 2048 | 2066 |
| 2049 // Accumulate some returned resources. This should trigger an IPC. | 2067 // Accumulate some returned resources. This should trigger an IPC. |
| 2050 cc::ReturnedResourceArray resources; | 2068 cc::ReturnedResourceArray resources; |
| 2051 cc::ReturnedResource resource; | 2069 cc::ReturnedResource resource; |
| 2052 resource.id = 1; | 2070 resource.id = 1; |
| 2053 resources.push_back(resource); | 2071 resources.push_back(resource); |
| 2072 view_->renderer_compositor_frame_sink_->reset_did_receive_ack(); |
| 2073 view_->renderer_compositor_frame_sink_->reset_last_reclaimed_resources(); |
| 2054 view_->ReclaimResources(resources); | 2074 view_->ReclaimResources(resources); |
| 2055 EXPECT_EQ(1u, sink_->message_count()); | 2075 EXPECT_FALSE(view_->renderer_compositor_frame_sink_->did_receive_ack()); |
| 2056 { | 2076 EXPECT_FALSE( |
| 2057 const IPC::Message* msg = sink_->GetMessageAt(0); | 2077 view_->renderer_compositor_frame_sink_->last_reclaimed_resources() |
| 2058 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type()); | 2078 .empty()); |
| 2059 ViewMsg_ReclaimCompositorResources::Param params; | |
| 2060 ViewMsg_ReclaimCompositorResources::Read(msg, ¶ms); | |
| 2061 EXPECT_FALSE(std::get<1>(params)); // is_swap_ack | |
| 2062 } | |
| 2063 } | 2079 } |
| 2064 | 2080 |
| 2065 // This test verifies that when the compositor_frame_sink_id changes, the old | 2081 // This test verifies that when the compositor_frame_sink_id changes, the old |
| 2066 // resources are not returned. | 2082 // resources are not returned. |
| 2067 TEST_F(RenderWidgetHostViewAuraTest, TwoOutputSurfaces) { | 2083 TEST_F(RenderWidgetHostViewAuraTest, TwoOutputSurfaces) { |
| 2068 FakeSurfaceObserver manager_observer; | 2084 FakeSurfaceObserver manager_observer; |
| 2069 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); | 2085 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); |
| 2070 cc::SurfaceManager* manager = | 2086 cc::SurfaceManager* manager = |
| 2071 factory->GetContextFactoryPrivate()->GetSurfaceManager(); | 2087 factory->GetContextFactoryPrivate()->GetSurfaceManager(); |
| 2072 manager->AddObserver(&manager_observer); | 2088 manager->AddObserver(&manager_observer); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 2084 | 2100 |
| 2085 // Submit a frame with resources. | 2101 // Submit a frame with resources. |
| 2086 cc::CompositorFrame frame = MakeDelegatedFrame(1.f, view_size, view_rect); | 2102 cc::CompositorFrame frame = MakeDelegatedFrame(1.f, view_size, view_rect); |
| 2087 cc::TransferableResource resource; | 2103 cc::TransferableResource resource; |
| 2088 resource.id = 1; | 2104 resource.id = 1; |
| 2089 frame.resource_list.push_back(resource); | 2105 frame.resource_list.push_back(resource); |
| 2090 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame)); | 2106 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame)); |
| 2091 EXPECT_EQ(0u, sink_->message_count()); | 2107 EXPECT_EQ(0u, sink_->message_count()); |
| 2092 | 2108 |
| 2093 // Signal that a new RendererCompositorFrameSink was created by the renderer. | 2109 // Signal that a new RendererCompositorFrameSink was created by the renderer. |
| 2094 view_->DidCreateNewRendererCompositorFrameSink(); | 2110 view_->CreateNewRendererCompositorFrameSink(); |
| 2095 | 2111 |
| 2096 // Submit another frame. The resources for the previous frame belong to the | 2112 // Submit another frame. The resources for the previous frame belong to the |
| 2097 // old RendererCompositorFrameSink and should not be returned. | 2113 // old RendererCompositorFrameSink and should not be returned. |
| 2098 view_->SubmitCompositorFrame(CreateLocalSurfaceId(), | 2114 view_->SubmitCompositorFrame(CreateLocalSurfaceId(), |
| 2099 MakeDelegatedFrame(1.f, view_size, view_rect)); | 2115 MakeDelegatedFrame(1.f, view_size, view_rect)); |
| 2100 EXPECT_EQ(0u, sink_->message_count()); | 2116 EXPECT_EQ(0u, sink_->message_count()); |
| 2101 | 2117 |
| 2102 // Report that the surface is drawn to trigger an ACK. | 2118 // Report that the surface is drawn to trigger an ACK. |
| 2119 view_->renderer_compositor_frame_sink_->reset_did_receive_ack(); |
| 2103 cc::Surface* surface = manager->GetSurfaceForId(view_->surface_id()); | 2120 cc::Surface* surface = manager->GetSurfaceForId(view_->surface_id()); |
| 2104 EXPECT_TRUE(surface); | 2121 EXPECT_TRUE(surface); |
| 2105 surface->RunDrawCallbacks(); | 2122 surface->RunDrawCallbacks(); |
| 2106 EXPECT_EQ(1u, sink_->message_count()); | 2123 EXPECT_TRUE(view_->renderer_compositor_frame_sink_->did_receive_ack()); |
| 2107 { | |
| 2108 const IPC::Message* msg = sink_->GetMessageAt(0); | |
| 2109 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type()); | |
| 2110 ViewMsg_ReclaimCompositorResources::Param params; | |
| 2111 ViewMsg_ReclaimCompositorResources::Read(msg, ¶ms); | |
| 2112 EXPECT_EQ(true, std::get<1>(params)); // is_swap_ack | |
| 2113 } | |
| 2114 | 2124 |
| 2115 manager->RemoveObserver(&manager_observer); | 2125 manager->RemoveObserver(&manager_observer); |
| 2116 } | 2126 } |
| 2117 | 2127 |
| 2118 // Resizing in fullscreen mode should send the up-to-date screen info. | 2128 // Resizing in fullscreen mode should send the up-to-date screen info. |
| 2119 // http://crbug.com/324350 | 2129 // http://crbug.com/324350 |
| 2120 TEST_F(RenderWidgetHostViewAuraTest, DISABLED_FullscreenResize) { | 2130 TEST_F(RenderWidgetHostViewAuraTest, DISABLED_FullscreenResize) { |
| 2121 aura::Window* root_window = aura_test_helper_->root_window(); | 2131 aura::Window* root_window = aura_test_helper_->root_window(); |
| 2122 root_window->SetLayoutManager(new FullscreenLayoutManager(root_window)); | 2132 root_window->SetLayoutManager(new FullscreenLayoutManager(root_window)); |
| 2123 view_->InitAsFullscreen(parent_view_); | 2133 view_->InitAsFullscreen(parent_view_); |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2336 sink_->ClearMessages(); | 2346 sink_->ClearMessages(); |
| 2337 | 2347 |
| 2338 // Resize renderer again, before receiving a frame. Should not produce a | 2348 // Resize renderer again, before receiving a frame. Should not produce a |
| 2339 // Resize message. | 2349 // Resize message. |
| 2340 view_->SetSize(size3); | 2350 view_->SetSize(size3); |
| 2341 EXPECT_EQ(size2.ToString(), view_->GetRequestedRendererSize().ToString()); | 2351 EXPECT_EQ(size2.ToString(), view_->GetRequestedRendererSize().ToString()); |
| 2342 EXPECT_EQ(0u, sink_->message_count()); | 2352 EXPECT_EQ(0u, sink_->message_count()); |
| 2343 | 2353 |
| 2344 // Receive a frame of the new size, should be skipped and not produce a Resize | 2354 // Receive a frame of the new size, should be skipped and not produce a Resize |
| 2345 // message. | 2355 // message. |
| 2356 view_->renderer_compositor_frame_sink_->reset_did_receive_ack(); |
| 2346 view_->SubmitCompositorFrame( | 2357 view_->SubmitCompositorFrame( |
| 2347 kArbitraryLocalSurfaceId, | 2358 kArbitraryLocalSurfaceId, |
| 2348 MakeDelegatedFrame(1.f, size3, gfx::Rect(size3))); | 2359 MakeDelegatedFrame(1.f, size3, gfx::Rect(size3))); |
| 2349 // Expect the frame ack; | 2360 // Expect the frame ack; |
| 2350 EXPECT_EQ(1u, sink_->message_count()); | 2361 EXPECT_TRUE(view_->renderer_compositor_frame_sink_->did_receive_ack()); |
| 2351 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, | |
| 2352 sink_->GetMessageAt(0)->type()); | |
| 2353 sink_->ClearMessages(); | |
| 2354 EXPECT_EQ(size2.ToString(), view_->GetRequestedRendererSize().ToString()); | 2362 EXPECT_EQ(size2.ToString(), view_->GetRequestedRendererSize().ToString()); |
| 2355 | 2363 |
| 2356 // Receive a frame of the correct size, should not be skipped and, and should | 2364 // Receive a frame of the correct size, should not be skipped and, and should |
| 2357 // produce a Resize message after the commit. | 2365 // produce a Resize message after the commit. |
| 2366 view_->renderer_compositor_frame_sink_->reset_did_receive_ack(); |
| 2358 view_->SubmitCompositorFrame( | 2367 view_->SubmitCompositorFrame( |
| 2359 kArbitraryLocalSurfaceId, | 2368 kArbitraryLocalSurfaceId, |
| 2360 MakeDelegatedFrame(1.f, size2, gfx::Rect(size2))); | 2369 MakeDelegatedFrame(1.f, size2, gfx::Rect(size2))); |
| 2361 cc::SurfaceId surface_id = view_->surface_id(); | 2370 cc::SurfaceId surface_id = view_->surface_id(); |
| 2362 if (!surface_id.is_valid()) { | 2371 if (!surface_id.is_valid()) { |
| 2363 // No frame ack yet. | 2372 // No frame ack yet. |
| 2364 EXPECT_EQ(0u, sink_->message_count()); | 2373 EXPECT_FALSE(view_->renderer_compositor_frame_sink_->did_receive_ack()); |
| 2365 } else { | 2374 } else { |
| 2366 // Frame isn't desired size, so early ack. | 2375 // Frame isn't desired size, so early ack. |
| 2367 EXPECT_EQ(1u, sink_->message_count()); | 2376 EXPECT_TRUE(view_->renderer_compositor_frame_sink_->did_receive_ack()); |
| 2368 } | 2377 } |
| 2369 EXPECT_EQ(size2.ToString(), view_->GetRequestedRendererSize().ToString()); | 2378 EXPECT_EQ(size2.ToString(), view_->GetRequestedRendererSize().ToString()); |
| 2370 | 2379 |
| 2371 // Wait for commit, then we should unlock the compositor and send a Resize | 2380 // Wait for commit, then we should unlock the compositor and send a Resize |
| 2372 // message (and a frame ack) | 2381 // message (and a frame ack) |
| 2373 ui::DrawWaiterForTest::WaitForCommit( | 2382 ui::DrawWaiterForTest::WaitForCommit( |
| 2374 root_window->GetHost()->compositor()); | 2383 root_window->GetHost()->compositor()); |
| 2375 | 2384 |
| 2376 bool has_resize = false; | 2385 bool has_resize = false; |
| 2377 for (uint32_t i = 0; i < sink_->message_count(); ++i) { | 2386 for (uint32_t i = 0; i < sink_->message_count(); ++i) { |
| 2378 const IPC::Message* msg = sink_->GetMessageAt(i); | 2387 const IPC::Message* msg = sink_->GetMessageAt(i); |
| 2379 switch (msg->type()) { | 2388 switch (msg->type()) { |
| 2380 case InputMsg_HandleInputEvent::ID: { | 2389 case InputMsg_HandleInputEvent::ID: { |
| 2381 // On some platforms, the call to view_->Show() causes a posted task to | 2390 // On some platforms, the call to view_->Show() causes a posted task to |
| 2382 // call | 2391 // call |
| 2383 // ui::WindowEventDispatcher::SynthesizeMouseMoveAfterChangeToWindow, | 2392 // ui::WindowEventDispatcher::SynthesizeMouseMoveAfterChangeToWindow, |
| 2384 // which the above WaitForCommit may cause to be picked up. Be robust | 2393 // which the above WaitForCommit may cause to be picked up. Be robust |
| 2385 // to this extra IPC coming in. | 2394 // to this extra IPC coming in. |
| 2386 InputMsg_HandleInputEvent::Param params; | 2395 InputMsg_HandleInputEvent::Param params; |
| 2387 InputMsg_HandleInputEvent::Read(msg, ¶ms); | 2396 InputMsg_HandleInputEvent::Read(msg, ¶ms); |
| 2388 const blink::WebInputEvent* event = std::get<0>(params); | 2397 const blink::WebInputEvent* event = std::get<0>(params); |
| 2389 EXPECT_EQ(blink::WebInputEvent::MouseMove, event->type()); | 2398 EXPECT_EQ(blink::WebInputEvent::MouseMove, event->type()); |
| 2390 break; | 2399 break; |
| 2391 } | 2400 } |
| 2392 case ViewMsg_ReclaimCompositorResources::ID: | |
| 2393 break; | |
| 2394 case ViewMsg_Resize::ID: { | 2401 case ViewMsg_Resize::ID: { |
| 2395 EXPECT_FALSE(has_resize); | 2402 EXPECT_FALSE(has_resize); |
| 2396 ViewMsg_Resize::Param params; | 2403 ViewMsg_Resize::Param params; |
| 2397 ViewMsg_Resize::Read(msg, ¶ms); | 2404 ViewMsg_Resize::Read(msg, ¶ms); |
| 2398 EXPECT_EQ(size3.ToString(), std::get<0>(params).new_size.ToString()); | 2405 EXPECT_EQ(size3.ToString(), std::get<0>(params).new_size.ToString()); |
| 2399 has_resize = true; | 2406 has_resize = true; |
| 2400 break; | 2407 break; |
| 2401 } | 2408 } |
| 2402 default: | 2409 default: |
| 2403 ADD_FAILURE() << "Unexpected message " << msg->type(); | 2410 ADD_FAILURE() << "Unexpected message " << msg->type(); |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2623 view_->window_->AddObserver(&observer); | 2630 view_->window_->AddObserver(&observer); |
| 2624 | 2631 |
| 2625 // Swap a frame. | 2632 // Swap a frame. |
| 2626 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); | 2633 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); |
| 2627 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, | 2634 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, |
| 2628 MakeDelegatedFrame(1.f, frame_size, view_rect)); | 2635 MakeDelegatedFrame(1.f, frame_size, view_rect)); |
| 2629 testing::Mock::VerifyAndClearExpectations(&observer); | 2636 testing::Mock::VerifyAndClearExpectations(&observer); |
| 2630 view_->RunOnCompositingDidCommit(); | 2637 view_->RunOnCompositingDidCommit(); |
| 2631 | 2638 |
| 2632 // Signal that a new RendererCompositorFrameSink was created. | 2639 // Signal that a new RendererCompositorFrameSink was created. |
| 2633 view_->DidCreateNewRendererCompositorFrameSink(); | 2640 view_->CreateNewRendererCompositorFrameSink(); |
| 2634 | 2641 |
| 2635 // Submit a frame from the new RendererCompositorFrameSink. | 2642 // Submit a frame from the new RendererCompositorFrameSink. |
| 2636 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); | 2643 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); |
| 2637 view_->SubmitCompositorFrame(CreateLocalSurfaceId(), | 2644 view_->SubmitCompositorFrame(CreateLocalSurfaceId(), |
| 2638 MakeDelegatedFrame(1.f, frame_size, view_rect)); | 2645 MakeDelegatedFrame(1.f, frame_size, view_rect)); |
| 2639 testing::Mock::VerifyAndClearExpectations(&observer); | 2646 testing::Mock::VerifyAndClearExpectations(&observer); |
| 2640 view_->RunOnCompositingDidCommit(); | 2647 view_->RunOnCompositingDidCommit(); |
| 2641 | 2648 |
| 2642 // Signal that a new RendererCompositorFrameSink was created. | 2649 // Signal that a new RendererCompositorFrameSink was created. |
| 2643 view_->DidCreateNewRendererCompositorFrameSink(); | 2650 view_->CreateNewRendererCompositorFrameSink(); |
| 2644 | 2651 |
| 2645 // Submit a frame from the new RendererCompositorFrameSink. | 2652 // Submit a frame from the new RendererCompositorFrameSink. |
| 2646 view_->SubmitCompositorFrame( | 2653 view_->SubmitCompositorFrame( |
| 2647 CreateLocalSurfaceId(), | 2654 CreateLocalSurfaceId(), |
| 2648 MakeDelegatedFrame(1.f, gfx::Size(), gfx::Rect())); | 2655 MakeDelegatedFrame(1.f, gfx::Size(), gfx::Rect())); |
| 2649 testing::Mock::VerifyAndClearExpectations(&observer); | 2656 testing::Mock::VerifyAndClearExpectations(&observer); |
| 2650 view_->RunOnCompositingDidCommit(); | 2657 view_->RunOnCompositingDidCommit(); |
| 2651 | 2658 |
| 2652 // Signal that a new RendererCompositorFrameSink was created. | 2659 // Signal that a new RendererCompositorFrameSink was created. |
| 2653 view_->DidCreateNewRendererCompositorFrameSink(); | 2660 view_->CreateNewRendererCompositorFrameSink(); |
| 2654 | 2661 |
| 2655 // Swap another frame, with a different surface id. | 2662 // Swap another frame, with a different surface id. |
| 2656 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); | 2663 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); |
| 2657 view_->SubmitCompositorFrame(CreateLocalSurfaceId(), | 2664 view_->SubmitCompositorFrame(CreateLocalSurfaceId(), |
| 2658 MakeDelegatedFrame(1.f, frame_size, view_rect)); | 2665 MakeDelegatedFrame(1.f, frame_size, view_rect)); |
| 2659 testing::Mock::VerifyAndClearExpectations(&observer); | 2666 testing::Mock::VerifyAndClearExpectations(&observer); |
| 2660 view_->RunOnCompositingDidCommit(); | 2667 view_->RunOnCompositingDidCommit(); |
| 2661 | 2668 |
| 2662 view_->window_->RemoveObserver(&observer); | 2669 view_->window_->RemoveObserver(&observer); |
| 2663 } | 2670 } |
| (...skipping 2775 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5439 // There is no composition in the beginning. | 5446 // There is no composition in the beginning. |
| 5440 EXPECT_FALSE(has_composition_text()); | 5447 EXPECT_FALSE(has_composition_text()); |
| 5441 SetHasCompositionTextToTrue(); | 5448 SetHasCompositionTextToTrue(); |
| 5442 view->ImeCancelComposition(); | 5449 view->ImeCancelComposition(); |
| 5443 // The composition must have been canceled. | 5450 // The composition must have been canceled. |
| 5444 EXPECT_FALSE(has_composition_text()); | 5451 EXPECT_FALSE(has_composition_text()); |
| 5445 } | 5452 } |
| 5446 } | 5453 } |
| 5447 | 5454 |
| 5448 } // namespace content | 5455 } // namespace content |
| OLD | NEW |