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