| 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" | |
| 65 #include "content/test/test_render_view_host.h" | 64 #include "content/test/test_render_view_host.h" |
| 66 #include "content/test/test_web_contents.h" | 65 #include "content/test/test_web_contents.h" |
| 67 #include "ipc/ipc_message.h" | 66 #include "ipc/ipc_message.h" |
| 68 #include "ipc/ipc_test_sink.h" | 67 #include "ipc/ipc_test_sink.h" |
| 69 #include "media/base/video_frame.h" | 68 #include "media/base/video_frame.h" |
| 70 #include "testing/gmock/include/gmock/gmock.h" | 69 #include "testing/gmock/include/gmock/gmock.h" |
| 71 #include "testing/gtest/include/gtest/gtest.h" | 70 #include "testing/gtest/include/gtest/gtest.h" |
| 72 #include "ui/aura/client/aura_constants.h" | 71 #include "ui/aura/client/aura_constants.h" |
| 73 #include "ui/aura/client/screen_position_client.h" | 72 #include "ui/aura/client/screen_position_client.h" |
| 74 #include "ui/aura/client/window_parenting_client.h" | 73 #include "ui/aura/client/window_parenting_client.h" |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 407 | 406 |
| 408 class FakeRenderWidgetHostViewAura : public RenderWidgetHostViewAura { | 407 class FakeRenderWidgetHostViewAura : public RenderWidgetHostViewAura { |
| 409 public: | 408 public: |
| 410 FakeRenderWidgetHostViewAura(RenderWidgetHost* widget, | 409 FakeRenderWidgetHostViewAura(RenderWidgetHost* widget, |
| 411 bool is_guest_view_hack) | 410 bool is_guest_view_hack) |
| 412 : RenderWidgetHostViewAura(widget, is_guest_view_hack), | 411 : RenderWidgetHostViewAura(widget, is_guest_view_hack), |
| 413 delegated_frame_host_client_( | 412 delegated_frame_host_client_( |
| 414 new FakeDelegatedFrameHostClientAura(this)) { | 413 new FakeDelegatedFrameHostClientAura(this)) { |
| 415 InstallDelegatedFrameHostClient( | 414 InstallDelegatedFrameHostClient( |
| 416 this, base::WrapUnique(delegated_frame_host_client_)); | 415 this, base::WrapUnique(delegated_frame_host_client_)); |
| 417 CreateNewRendererCompositorFrameSink(); | |
| 418 } | 416 } |
| 419 | 417 |
| 420 ~FakeRenderWidgetHostViewAura() override {} | 418 ~FakeRenderWidgetHostViewAura() override {} |
| 421 | 419 |
| 422 void CreateNewRendererCompositorFrameSink() { | |
| 423 cc::mojom::MojoCompositorFrameSinkPtr sink; | |
| 424 cc::mojom::MojoCompositorFrameSinkRequest sink_request = | |
| 425 mojo::MakeRequest(&sink); | |
| 426 cc::mojom::MojoCompositorFrameSinkClientRequest client_request = | |
| 427 mojo::MakeRequest(&renderer_compositor_frame_sink_ptr_); | |
| 428 renderer_compositor_frame_sink_ = | |
| 429 base::MakeUnique<FakeRendererCompositorFrameSink>( | |
| 430 std::move(sink), std::move(client_request)); | |
| 431 DidCreateNewRendererCompositorFrameSink( | |
| 432 renderer_compositor_frame_sink_ptr_.get()); | |
| 433 } | |
| 434 | |
| 435 void DisableResizeLock() { | 420 void DisableResizeLock() { |
| 436 delegated_frame_host_client_->DisableResizeLock(); | 421 delegated_frame_host_client_->DisableResizeLock(); |
| 437 } | 422 } |
| 438 | 423 |
| 439 void UseFakeDispatcher() { | 424 void UseFakeDispatcher() { |
| 440 dispatcher_ = new FakeWindowEventDispatcher(window()->GetHost()); | 425 dispatcher_ = new FakeWindowEventDispatcher(window()->GetHost()); |
| 441 std::unique_ptr<aura::WindowEventDispatcher> dispatcher(dispatcher_); | 426 std::unique_ptr<aura::WindowEventDispatcher> dispatcher(dispatcher_); |
| 442 aura::test::SetHostDispatcher(window()->GetHost(), std::move(dispatcher)); | 427 aura::test::SetHostDispatcher(window()->GetHost(), std::move(dispatcher)); |
| 443 } | 428 } |
| 444 | 429 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 486 bool resize_locked() const { | 471 bool resize_locked() const { |
| 487 return delegated_frame_host_client_->resize_locked(); | 472 return delegated_frame_host_client_->resize_locked(); |
| 488 } | 473 } |
| 489 bool compositor_locked() const { | 474 bool compositor_locked() const { |
| 490 return delegated_frame_host_client_->compositor_locked(); | 475 return delegated_frame_host_client_->compositor_locked(); |
| 491 } | 476 } |
| 492 | 477 |
| 493 gfx::Size last_frame_size_; | 478 gfx::Size last_frame_size_; |
| 494 std::unique_ptr<cc::CopyOutputRequest> last_copy_request_; | 479 std::unique_ptr<cc::CopyOutputRequest> last_copy_request_; |
| 495 FakeWindowEventDispatcher* dispatcher_; | 480 FakeWindowEventDispatcher* dispatcher_; |
| 496 std::unique_ptr<FakeRendererCompositorFrameSink> | |
| 497 renderer_compositor_frame_sink_; | |
| 498 | 481 |
| 499 private: | 482 private: |
| 500 FakeDelegatedFrameHostClientAura* delegated_frame_host_client_; | 483 FakeDelegatedFrameHostClientAura* delegated_frame_host_client_; |
| 501 cc::mojom::MojoCompositorFrameSinkClientPtr | |
| 502 renderer_compositor_frame_sink_ptr_; | |
| 503 | 484 |
| 504 DISALLOW_COPY_AND_ASSIGN(FakeRenderWidgetHostViewAura); | 485 DISALLOW_COPY_AND_ASSIGN(FakeRenderWidgetHostViewAura); |
| 505 }; | 486 }; |
| 506 | 487 |
| 507 // A layout manager that always resizes a child to the root window size. | 488 // A layout manager that always resizes a child to the root window size. |
| 508 class FullscreenLayoutManager : public aura::LayoutManager { | 489 class FullscreenLayoutManager : public aura::LayoutManager { |
| 509 public: | 490 public: |
| 510 explicit FullscreenLayoutManager(aura::Window* owner) : owner_(owner) {} | 491 explicit FullscreenLayoutManager(aura::Window* owner) : owner_(owner) {} |
| 511 ~FullscreenLayoutManager() override {} | 492 ~FullscreenLayoutManager() override {} |
| 512 | 493 |
| (...skipping 1544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2057 gfx::Rect()); | 2038 gfx::Rect()); |
| 2058 view_->SetSize(view_size); | 2039 view_->SetSize(view_size); |
| 2059 view_->Show(); | 2040 view_->Show(); |
| 2060 sink_->ClearMessages(); | 2041 sink_->ClearMessages(); |
| 2061 | 2042 |
| 2062 // Accumulate some returned resources. This should trigger an IPC. | 2043 // Accumulate some returned resources. This should trigger an IPC. |
| 2063 cc::ReturnedResourceArray resources; | 2044 cc::ReturnedResourceArray resources; |
| 2064 cc::ReturnedResource resource; | 2045 cc::ReturnedResource resource; |
| 2065 resource.id = 1; | 2046 resource.id = 1; |
| 2066 resources.push_back(resource); | 2047 resources.push_back(resource); |
| 2067 view_->renderer_compositor_frame_sink_->Reset(); | |
| 2068 view_->ReclaimResources(resources); | 2048 view_->ReclaimResources(resources); |
| 2069 view_->renderer_compositor_frame_sink_->Flush(); | 2049 EXPECT_EQ(1u, sink_->message_count()); |
| 2070 EXPECT_FALSE(view_->renderer_compositor_frame_sink_->did_receive_ack()); | 2050 { |
| 2071 EXPECT_FALSE( | 2051 const IPC::Message* msg = sink_->GetMessageAt(0); |
| 2072 view_->renderer_compositor_frame_sink_->last_reclaimed_resources() | 2052 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type()); |
| 2073 .empty()); | 2053 ViewMsg_ReclaimCompositorResources::Param params; |
| 2054 ViewMsg_ReclaimCompositorResources::Read(msg, ¶ms); |
| 2055 EXPECT_FALSE(std::get<1>(params)); // is_swap_ack |
| 2056 } |
| 2074 } | 2057 } |
| 2075 | 2058 |
| 2076 // This test verifies that when the compositor_frame_sink_id changes, the old | 2059 // This test verifies that when the compositor_frame_sink_id changes, the old |
| 2077 // resources are not returned. | 2060 // resources are not returned. |
| 2078 TEST_F(RenderWidgetHostViewAuraTest, TwoOutputSurfaces) { | 2061 TEST_F(RenderWidgetHostViewAuraTest, TwoOutputSurfaces) { |
| 2079 FakeSurfaceObserver manager_observer; | 2062 FakeSurfaceObserver manager_observer; |
| 2080 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); | 2063 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); |
| 2081 cc::SurfaceManager* manager = | 2064 cc::SurfaceManager* manager = |
| 2082 factory->GetContextFactoryPrivate()->GetSurfaceManager(); | 2065 factory->GetContextFactoryPrivate()->GetSurfaceManager(); |
| 2083 manager->AddObserver(&manager_observer); | 2066 manager->AddObserver(&manager_observer); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 2095 | 2078 |
| 2096 // Submit a frame with resources. | 2079 // Submit a frame with resources. |
| 2097 cc::CompositorFrame frame = MakeDelegatedFrame(1.f, view_size, view_rect); | 2080 cc::CompositorFrame frame = MakeDelegatedFrame(1.f, view_size, view_rect); |
| 2098 cc::TransferableResource resource; | 2081 cc::TransferableResource resource; |
| 2099 resource.id = 1; | 2082 resource.id = 1; |
| 2100 frame.resource_list.push_back(resource); | 2083 frame.resource_list.push_back(resource); |
| 2101 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame)); | 2084 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame)); |
| 2102 EXPECT_EQ(0u, sink_->message_count()); | 2085 EXPECT_EQ(0u, sink_->message_count()); |
| 2103 | 2086 |
| 2104 // Signal that a new RendererCompositorFrameSink was created by the renderer. | 2087 // Signal that a new RendererCompositorFrameSink was created by the renderer. |
| 2105 view_->CreateNewRendererCompositorFrameSink(); | 2088 view_->DidCreateNewRendererCompositorFrameSink(); |
| 2106 | 2089 |
| 2107 // Submit another frame. The resources for the previous frame belong to the | 2090 // Submit another frame. The resources for the previous frame belong to the |
| 2108 // old RendererCompositorFrameSink and should not be returned. | 2091 // old RendererCompositorFrameSink and should not be returned. |
| 2109 view_->SubmitCompositorFrame(CreateLocalSurfaceId(), | 2092 view_->SubmitCompositorFrame(CreateLocalSurfaceId(), |
| 2110 MakeDelegatedFrame(1.f, view_size, view_rect)); | 2093 MakeDelegatedFrame(1.f, view_size, view_rect)); |
| 2111 EXPECT_EQ(0u, sink_->message_count()); | 2094 EXPECT_EQ(0u, sink_->message_count()); |
| 2112 | 2095 |
| 2113 // Report that the surface is drawn to trigger an ACK. | 2096 // Report that the surface is drawn to trigger an ACK. |
| 2114 view_->renderer_compositor_frame_sink_->Reset(); | |
| 2115 cc::Surface* surface = manager->GetSurfaceForId(view_->surface_id()); | 2097 cc::Surface* surface = manager->GetSurfaceForId(view_->surface_id()); |
| 2116 EXPECT_TRUE(surface); | 2098 EXPECT_TRUE(surface); |
| 2117 surface->RunDrawCallback(); | 2099 surface->RunDrawCallback(); |
| 2118 view_->renderer_compositor_frame_sink_->Flush(); | 2100 EXPECT_EQ(1u, sink_->message_count()); |
| 2119 EXPECT_TRUE(view_->renderer_compositor_frame_sink_->did_receive_ack()); | 2101 { |
| 2102 const IPC::Message* msg = sink_->GetMessageAt(0); |
| 2103 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type()); |
| 2104 ViewMsg_ReclaimCompositorResources::Param params; |
| 2105 ViewMsg_ReclaimCompositorResources::Read(msg, ¶ms); |
| 2106 EXPECT_EQ(true, std::get<1>(params)); // is_swap_ack |
| 2107 } |
| 2120 | 2108 |
| 2121 manager->RemoveObserver(&manager_observer); | 2109 manager->RemoveObserver(&manager_observer); |
| 2122 } | 2110 } |
| 2123 | 2111 |
| 2124 // Resizing in fullscreen mode should send the up-to-date screen info. | 2112 // Resizing in fullscreen mode should send the up-to-date screen info. |
| 2125 // http://crbug.com/324350 | 2113 // http://crbug.com/324350 |
| 2126 TEST_F(RenderWidgetHostViewAuraTest, DISABLED_FullscreenResize) { | 2114 TEST_F(RenderWidgetHostViewAuraTest, DISABLED_FullscreenResize) { |
| 2127 aura::Window* root_window = aura_test_helper_->root_window(); | 2115 aura::Window* root_window = aura_test_helper_->root_window(); |
| 2128 root_window->SetLayoutManager(new FullscreenLayoutManager(root_window)); | 2116 root_window->SetLayoutManager(new FullscreenLayoutManager(root_window)); |
| 2129 view_->InitAsFullscreen(parent_view_); | 2117 view_->InitAsFullscreen(parent_view_); |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2342 sink_->ClearMessages(); | 2330 sink_->ClearMessages(); |
| 2343 | 2331 |
| 2344 // Resize renderer again, before receiving a frame. Should not produce a | 2332 // Resize renderer again, before receiving a frame. Should not produce a |
| 2345 // Resize message. | 2333 // Resize message. |
| 2346 view_->SetSize(size3); | 2334 view_->SetSize(size3); |
| 2347 EXPECT_EQ(size2.ToString(), view_->GetRequestedRendererSize().ToString()); | 2335 EXPECT_EQ(size2.ToString(), view_->GetRequestedRendererSize().ToString()); |
| 2348 EXPECT_EQ(0u, sink_->message_count()); | 2336 EXPECT_EQ(0u, sink_->message_count()); |
| 2349 | 2337 |
| 2350 // Receive a frame of the new size, should be skipped and not produce a Resize | 2338 // Receive a frame of the new size, should be skipped and not produce a Resize |
| 2351 // message. | 2339 // message. |
| 2352 view_->renderer_compositor_frame_sink_->Reset(); | |
| 2353 view_->SubmitCompositorFrame( | 2340 view_->SubmitCompositorFrame( |
| 2354 kArbitraryLocalSurfaceId, | 2341 kArbitraryLocalSurfaceId, |
| 2355 MakeDelegatedFrame(1.f, size3, gfx::Rect(size3))); | 2342 MakeDelegatedFrame(1.f, size3, gfx::Rect(size3))); |
| 2356 view_->renderer_compositor_frame_sink_->Flush(); | |
| 2357 // Expect the frame ack; | 2343 // Expect the frame ack; |
| 2358 EXPECT_TRUE(view_->renderer_compositor_frame_sink_->did_receive_ack()); | 2344 EXPECT_EQ(1u, sink_->message_count()); |
| 2345 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, |
| 2346 sink_->GetMessageAt(0)->type()); |
| 2347 sink_->ClearMessages(); |
| 2359 EXPECT_EQ(size2.ToString(), view_->GetRequestedRendererSize().ToString()); | 2348 EXPECT_EQ(size2.ToString(), view_->GetRequestedRendererSize().ToString()); |
| 2360 | 2349 |
| 2361 // Receive a frame of the correct size, should not be skipped and, and should | 2350 // Receive a frame of the correct size, should not be skipped and, and should |
| 2362 // produce a Resize message after the commit. | 2351 // produce a Resize message after the commit. |
| 2363 view_->renderer_compositor_frame_sink_->Reset(); | |
| 2364 view_->SubmitCompositorFrame( | 2352 view_->SubmitCompositorFrame( |
| 2365 kArbitraryLocalSurfaceId, | 2353 kArbitraryLocalSurfaceId, |
| 2366 MakeDelegatedFrame(1.f, size2, gfx::Rect(size2))); | 2354 MakeDelegatedFrame(1.f, size2, gfx::Rect(size2))); |
| 2367 view_->renderer_compositor_frame_sink_->Flush(); | |
| 2368 cc::SurfaceId surface_id = view_->surface_id(); | 2355 cc::SurfaceId surface_id = view_->surface_id(); |
| 2369 if (!surface_id.is_valid()) { | 2356 if (!surface_id.is_valid()) { |
| 2370 // No frame ack yet. | 2357 // No frame ack yet. |
| 2371 EXPECT_FALSE(view_->renderer_compositor_frame_sink_->did_receive_ack()); | 2358 EXPECT_EQ(0u, sink_->message_count()); |
| 2372 } else { | 2359 } else { |
| 2373 // Frame isn't desired size, so early ack. | 2360 // Frame isn't desired size, so early ack. |
| 2374 EXPECT_TRUE(view_->renderer_compositor_frame_sink_->did_receive_ack()); | 2361 EXPECT_EQ(1u, sink_->message_count()); |
| 2375 } | 2362 } |
| 2376 EXPECT_EQ(size2.ToString(), view_->GetRequestedRendererSize().ToString()); | 2363 EXPECT_EQ(size2.ToString(), view_->GetRequestedRendererSize().ToString()); |
| 2377 | 2364 |
| 2378 // Wait for commit, then we should unlock the compositor and send a Resize | 2365 // Wait for commit, then we should unlock the compositor and send a Resize |
| 2379 // message (and a frame ack) | 2366 // message (and a frame ack) |
| 2380 ui::DrawWaiterForTest::WaitForCommit( | 2367 ui::DrawWaiterForTest::WaitForCommit( |
| 2381 root_window->GetHost()->compositor()); | 2368 root_window->GetHost()->compositor()); |
| 2382 | 2369 |
| 2383 bool has_resize = false; | 2370 bool has_resize = false; |
| 2384 for (uint32_t i = 0; i < sink_->message_count(); ++i) { | 2371 for (uint32_t i = 0; i < sink_->message_count(); ++i) { |
| 2385 const IPC::Message* msg = sink_->GetMessageAt(i); | 2372 const IPC::Message* msg = sink_->GetMessageAt(i); |
| 2386 switch (msg->type()) { | 2373 switch (msg->type()) { |
| 2387 case InputMsg_HandleInputEvent::ID: { | 2374 case InputMsg_HandleInputEvent::ID: { |
| 2388 // On some platforms, the call to view_->Show() causes a posted task to | 2375 // On some platforms, the call to view_->Show() causes a posted task to |
| 2389 // call | 2376 // call |
| 2390 // ui::WindowEventDispatcher::SynthesizeMouseMoveAfterChangeToWindow, | 2377 // ui::WindowEventDispatcher::SynthesizeMouseMoveAfterChangeToWindow, |
| 2391 // which the above WaitForCommit may cause to be picked up. Be robust | 2378 // which the above WaitForCommit may cause to be picked up. Be robust |
| 2392 // to this extra IPC coming in. | 2379 // to this extra IPC coming in. |
| 2393 InputMsg_HandleInputEvent::Param params; | 2380 InputMsg_HandleInputEvent::Param params; |
| 2394 InputMsg_HandleInputEvent::Read(msg, ¶ms); | 2381 InputMsg_HandleInputEvent::Read(msg, ¶ms); |
| 2395 const blink::WebInputEvent* event = std::get<0>(params); | 2382 const blink::WebInputEvent* event = std::get<0>(params); |
| 2396 EXPECT_EQ(blink::WebInputEvent::kMouseMove, event->GetType()); | 2383 EXPECT_EQ(blink::WebInputEvent::kMouseMove, event->GetType()); |
| 2397 break; | 2384 break; |
| 2398 } | 2385 } |
| 2386 case ViewMsg_ReclaimCompositorResources::ID: |
| 2387 break; |
| 2399 case ViewMsg_Resize::ID: { | 2388 case ViewMsg_Resize::ID: { |
| 2400 EXPECT_FALSE(has_resize); | 2389 EXPECT_FALSE(has_resize); |
| 2401 ViewMsg_Resize::Param params; | 2390 ViewMsg_Resize::Param params; |
| 2402 ViewMsg_Resize::Read(msg, ¶ms); | 2391 ViewMsg_Resize::Read(msg, ¶ms); |
| 2403 EXPECT_EQ(size3.ToString(), std::get<0>(params).new_size.ToString()); | 2392 EXPECT_EQ(size3.ToString(), std::get<0>(params).new_size.ToString()); |
| 2404 has_resize = true; | 2393 has_resize = true; |
| 2405 break; | 2394 break; |
| 2406 } | 2395 } |
| 2407 default: | 2396 default: |
| 2408 ADD_FAILURE() << "Unexpected message " << msg->type(); | 2397 ADD_FAILURE() << "Unexpected message " << msg->type(); |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2677 view_->window_->AddObserver(&observer); | 2666 view_->window_->AddObserver(&observer); |
| 2678 | 2667 |
| 2679 // Swap a frame. | 2668 // Swap a frame. |
| 2680 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); | 2669 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); |
| 2681 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, | 2670 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, |
| 2682 MakeDelegatedFrame(1.f, frame_size, view_rect)); | 2671 MakeDelegatedFrame(1.f, frame_size, view_rect)); |
| 2683 testing::Mock::VerifyAndClearExpectations(&observer); | 2672 testing::Mock::VerifyAndClearExpectations(&observer); |
| 2684 view_->RunOnCompositingDidCommit(); | 2673 view_->RunOnCompositingDidCommit(); |
| 2685 | 2674 |
| 2686 // Signal that a new RendererCompositorFrameSink was created. | 2675 // Signal that a new RendererCompositorFrameSink was created. |
| 2687 view_->CreateNewRendererCompositorFrameSink(); | 2676 view_->DidCreateNewRendererCompositorFrameSink(); |
| 2688 | 2677 |
| 2689 // Submit a frame from the new RendererCompositorFrameSink. | 2678 // Submit a frame from the new RendererCompositorFrameSink. |
| 2690 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); | 2679 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); |
| 2691 view_->SubmitCompositorFrame(CreateLocalSurfaceId(), | 2680 view_->SubmitCompositorFrame(CreateLocalSurfaceId(), |
| 2692 MakeDelegatedFrame(1.f, frame_size, view_rect)); | 2681 MakeDelegatedFrame(1.f, frame_size, view_rect)); |
| 2693 testing::Mock::VerifyAndClearExpectations(&observer); | 2682 testing::Mock::VerifyAndClearExpectations(&observer); |
| 2694 view_->RunOnCompositingDidCommit(); | 2683 view_->RunOnCompositingDidCommit(); |
| 2695 | 2684 |
| 2696 // Signal that a new RendererCompositorFrameSink was created. | 2685 // Signal that a new RendererCompositorFrameSink was created. |
| 2697 view_->CreateNewRendererCompositorFrameSink(); | 2686 view_->DidCreateNewRendererCompositorFrameSink(); |
| 2698 | 2687 |
| 2699 // Submit a frame from the new RendererCompositorFrameSink. | 2688 // Submit a frame from the new RendererCompositorFrameSink. |
| 2700 view_->SubmitCompositorFrame( | 2689 view_->SubmitCompositorFrame( |
| 2701 CreateLocalSurfaceId(), | 2690 CreateLocalSurfaceId(), |
| 2702 MakeDelegatedFrame(1.f, gfx::Size(), gfx::Rect())); | 2691 MakeDelegatedFrame(1.f, gfx::Size(), gfx::Rect())); |
| 2703 testing::Mock::VerifyAndClearExpectations(&observer); | 2692 testing::Mock::VerifyAndClearExpectations(&observer); |
| 2704 view_->RunOnCompositingDidCommit(); | 2693 view_->RunOnCompositingDidCommit(); |
| 2705 | 2694 |
| 2706 // Signal that a new RendererCompositorFrameSink was created. | 2695 // Signal that a new RendererCompositorFrameSink was created. |
| 2707 view_->CreateNewRendererCompositorFrameSink(); | 2696 view_->DidCreateNewRendererCompositorFrameSink(); |
| 2708 | 2697 |
| 2709 // Swap another frame, with a different surface id. | 2698 // Swap another frame, with a different surface id. |
| 2710 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); | 2699 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); |
| 2711 view_->SubmitCompositorFrame(CreateLocalSurfaceId(), | 2700 view_->SubmitCompositorFrame(CreateLocalSurfaceId(), |
| 2712 MakeDelegatedFrame(1.f, frame_size, view_rect)); | 2701 MakeDelegatedFrame(1.f, frame_size, view_rect)); |
| 2713 testing::Mock::VerifyAndClearExpectations(&observer); | 2702 testing::Mock::VerifyAndClearExpectations(&observer); |
| 2714 view_->RunOnCompositingDidCommit(); | 2703 view_->RunOnCompositingDidCommit(); |
| 2715 | 2704 |
| 2716 view_->window_->RemoveObserver(&observer); | 2705 view_->window_->RemoveObserver(&observer); |
| 2717 } | 2706 } |
| (...skipping 2775 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5493 // There is no composition in the beginning. | 5482 // There is no composition in the beginning. |
| 5494 EXPECT_FALSE(has_composition_text()); | 5483 EXPECT_FALSE(has_composition_text()); |
| 5495 SetHasCompositionTextToTrue(); | 5484 SetHasCompositionTextToTrue(); |
| 5496 view->ImeCancelComposition(); | 5485 view->ImeCancelComposition(); |
| 5497 // The composition must have been canceled. | 5486 // The composition must have been canceled. |
| 5498 EXPECT_FALSE(has_composition_text()); | 5487 EXPECT_FALSE(has_composition_text()); |
| 5499 } | 5488 } |
| 5500 } | 5489 } |
| 5501 | 5490 |
| 5502 } // namespace content | 5491 } // namespace content |
| OLD | NEW |