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 |