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

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

Issue 2577023003: Removes WebContentsViewMus/RenderWidgetHostViewMus (Closed)
Patch Set: fix test Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "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 15 matching lines...) Expand all
26 #include "cc/output/compositor_frame.h" 26 #include "cc/output/compositor_frame.h"
27 #include "cc/output/compositor_frame_metadata.h" 27 #include "cc/output/compositor_frame_metadata.h"
28 #include "cc/output/copy_output_request.h" 28 #include "cc/output/copy_output_request.h"
29 #include "cc/surfaces/surface.h" 29 #include "cc/surfaces/surface.h"
30 #include "cc/surfaces/surface_manager.h" 30 #include "cc/surfaces/surface_manager.h"
31 #include "components/display_compositor/gl_helper.h" 31 #include "components/display_compositor/gl_helper.h"
32 #include "content/browser/browser_thread_impl.h" 32 #include "content/browser/browser_thread_impl.h"
33 #include "content/browser/compositor/test/no_transport_image_transport_factory.h " 33 #include "content/browser/compositor/test/no_transport_image_transport_factory.h "
34 #include "content/browser/frame_host/render_widget_host_view_guest.h" 34 #include "content/browser/frame_host/render_widget_host_view_guest.h"
35 #include "content/browser/gpu/compositor_util.h" 35 #include "content/browser/gpu/compositor_util.h"
36 #include "content/browser/renderer_host/delegated_frame_host.h"
37 #include "content/browser/renderer_host/delegated_frame_host_client_aura.h"
36 #include "content/browser/renderer_host/input/input_router.h" 38 #include "content/browser/renderer_host/input/input_router.h"
37 #include "content/browser/renderer_host/input/mouse_wheel_event_queue.h" 39 #include "content/browser/renderer_host/input/mouse_wheel_event_queue.h"
38 #include "content/browser/renderer_host/overscroll_controller.h" 40 #include "content/browser/renderer_host/overscroll_controller.h"
39 #include "content/browser/renderer_host/overscroll_controller_delegate.h" 41 #include "content/browser/renderer_host/overscroll_controller_delegate.h"
40 #include "content/browser/renderer_host/render_view_host_factory.h" 42 #include "content/browser/renderer_host/render_view_host_factory.h"
41 #include "content/browser/renderer_host/render_widget_host_delegate.h" 43 #include "content/browser/renderer_host/render_widget_host_delegate.h"
42 #include "content/browser/renderer_host/render_widget_host_impl.h" 44 #include "content/browser/renderer_host/render_widget_host_impl.h"
43 #include "content/browser/renderer_host/render_widget_host_view_event_handler.h" 45 #include "content/browser/renderer_host/render_widget_host_view_event_handler.h"
44 #include "content/browser/renderer_host/resize_lock.h" 46 #include "content/browser/renderer_host/resize_lock.h"
45 #include "content/browser/renderer_host/text_input_manager.h" 47 #include "content/browser/renderer_host/text_input_manager.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 101
100 using blink::WebGestureEvent; 102 using blink::WebGestureEvent;
101 using blink::WebInputEvent; 103 using blink::WebInputEvent;
102 using blink::WebMouseEvent; 104 using blink::WebMouseEvent;
103 using blink::WebMouseWheelEvent; 105 using blink::WebMouseWheelEvent;
104 using blink::WebTouchEvent; 106 using blink::WebTouchEvent;
105 using blink::WebTouchPoint; 107 using blink::WebTouchPoint;
106 using ui::WebInputEventTraits; 108 using ui::WebInputEventTraits;
107 109
108 namespace content { 110 namespace content {
111
112 void InstallDelegatedFrameHostClient(
113 RenderWidgetHostViewAura* render_widget_host_view,
114 std::unique_ptr<DelegatedFrameHostClient> delegated_frame_host_client);
115
109 namespace { 116 namespace {
110 117
111 class TestOverscrollDelegate : public OverscrollControllerDelegate { 118 class TestOverscrollDelegate : public OverscrollControllerDelegate {
112 public: 119 public:
113 explicit TestOverscrollDelegate(RenderWidgetHostView* view) 120 explicit TestOverscrollDelegate(RenderWidgetHostView* view)
114 : view_(view), 121 : view_(view),
115 current_mode_(OVERSCROLL_NONE), 122 current_mode_(OVERSCROLL_NONE),
116 completed_mode_(OVERSCROLL_NONE), 123 completed_mode_(OVERSCROLL_NONE),
117 delta_x_(0.f), 124 delta_x_(0.f),
118 delta_y_(0.f) {} 125 delta_y_(0.f) {}
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 size_t GetAndResetProcessedTouchEventCount() { 323 size_t GetAndResetProcessedTouchEventCount() {
317 size_t count = processed_touch_event_count_; 324 size_t count = processed_touch_event_count_;
318 processed_touch_event_count_ = 0; 325 processed_touch_event_count_ = 0;
319 return count; 326 return count;
320 } 327 }
321 328
322 private: 329 private:
323 size_t processed_touch_event_count_; 330 size_t processed_touch_event_count_;
324 }; 331 };
325 332
333 class FakeDelegatedFrameHostClientAura : public DelegatedFrameHostClientAura {
334 public:
335 explicit FakeDelegatedFrameHostClientAura(
336 RenderWidgetHostViewAura* render_widget_host_view)
337 : DelegatedFrameHostClientAura(render_widget_host_view) {}
338 ~FakeDelegatedFrameHostClientAura() override {}
339
340 void DisableResizeLock() { can_create_resize_lock_ = false; }
341
342 private:
343 // A lock that doesn't actually do anything to the compositor, and does not
344 // time out.
345 class FakeResizeLock : public ResizeLock {
346 public:
347 FakeResizeLock(const gfx::Size new_size, bool defer_compositor_lock)
348 : ResizeLock(new_size, defer_compositor_lock) {}
349 };
350
351 // DelegatedFrameHostClientAura:
352 std::unique_ptr<ResizeLock> DelegatedFrameHostCreateResizeLock(
353 bool defer_compositor_lock) override {
354 gfx::Size desired_size =
355 render_widget_host_view()->GetNativeView()->bounds().size();
356 return std::unique_ptr<ResizeLock>(
357 new FakeResizeLock(desired_size, defer_compositor_lock));
358 }
359 bool DelegatedFrameCanCreateResizeLock() const override {
360 return can_create_resize_lock_;
361 }
362
363 bool can_create_resize_lock_ = true;
364
365 DISALLOW_COPY_AND_ASSIGN(FakeDelegatedFrameHostClientAura);
366 };
367
326 class FakeRenderWidgetHostViewAura : public RenderWidgetHostViewAura { 368 class FakeRenderWidgetHostViewAura : public RenderWidgetHostViewAura {
327 public: 369 public:
328 FakeRenderWidgetHostViewAura(RenderWidgetHost* widget, 370 FakeRenderWidgetHostViewAura(RenderWidgetHost* widget,
329 bool is_guest_view_hack) 371 bool is_guest_view_hack)
330 : RenderWidgetHostViewAura(widget, is_guest_view_hack), 372 : RenderWidgetHostViewAura(widget, is_guest_view_hack),
331 can_create_resize_lock_(true) {} 373 delegated_frame_host_client_(
374 new FakeDelegatedFrameHostClientAura(this)) {
375 std::unique_ptr<DelegatedFrameHostClient> client(
376 delegated_frame_host_client_);
377 InstallDelegatedFrameHostClient(this, std::move(client));
378 }
379
380 ~FakeRenderWidgetHostViewAura() override {}
381
382 void DisableResizeLock() {
383 delegated_frame_host_client_->DisableResizeLock();
384 }
332 385
333 void UseFakeDispatcher() { 386 void UseFakeDispatcher() {
334 dispatcher_ = new FakeWindowEventDispatcher(window()->GetHost()); 387 dispatcher_ = new FakeWindowEventDispatcher(window()->GetHost());
335 std::unique_ptr<aura::WindowEventDispatcher> dispatcher(dispatcher_); 388 std::unique_ptr<aura::WindowEventDispatcher> dispatcher(dispatcher_);
336 aura::test::SetHostDispatcher(window()->GetHost(), std::move(dispatcher)); 389 aura::test::SetHostDispatcher(window()->GetHost(), std::move(dispatcher));
337 } 390 }
338 391
339 ~FakeRenderWidgetHostViewAura() override {}
340
341 std::unique_ptr<ResizeLock> DelegatedFrameHostCreateResizeLock(
342 bool defer_compositor_lock) override {
343 gfx::Size desired_size = window()->bounds().size();
344 return std::unique_ptr<ResizeLock>(
345 new FakeResizeLock(desired_size, defer_compositor_lock));
346 }
347
348 bool DelegatedFrameCanCreateResizeLock() const override {
349 return can_create_resize_lock_;
350 }
351
352 void RunOnCompositingDidCommit() { 392 void RunOnCompositingDidCommit() {
353 GetDelegatedFrameHost()->OnCompositingDidCommitForTesting( 393 GetDelegatedFrameHost()->OnCompositingDidCommitForTesting(
354 window()->GetHost()->compositor()); 394 window()->GetHost()->compositor());
355 } 395 }
356 396
357 void InterceptCopyOfOutput(std::unique_ptr<cc::CopyOutputRequest> request) { 397 void InterceptCopyOfOutput(std::unique_ptr<cc::CopyOutputRequest> request) {
358 last_copy_request_ = std::move(request); 398 last_copy_request_ = std::move(request);
359 if (last_copy_request_->has_texture_mailbox()) { 399 if (last_copy_request_->has_texture_mailbox()) {
360 // Give the resulting texture a size. 400 // Give the resulting texture a size.
361 display_compositor::GLHelper* gl_helper = 401 display_compositor::GLHelper* gl_helper =
(...skipping 19 matching lines...) Expand all
381 bool released_front_lock_active() const { 421 bool released_front_lock_active() const {
382 return GetDelegatedFrameHost()->ReleasedFrontLockActiveForTesting(); 422 return GetDelegatedFrameHost()->ReleasedFrontLockActiveForTesting();
383 } 423 }
384 424
385 void ReturnResources(const cc::ReturnedResourceArray& resources) { 425 void ReturnResources(const cc::ReturnedResourceArray& resources) {
386 GetDelegatedFrameHost()->ReturnResources(resources); 426 GetDelegatedFrameHost()->ReturnResources(resources);
387 } 427 }
388 428
389 void ResetCompositor() { GetDelegatedFrameHost()->ResetCompositor(); } 429 void ResetCompositor() { GetDelegatedFrameHost()->ResetCompositor(); }
390 430
391 // A lock that doesn't actually do anything to the compositor, and does not
392 // time out.
393 class FakeResizeLock : public ResizeLock {
394 public:
395 FakeResizeLock(const gfx::Size new_size, bool defer_compositor_lock)
396 : ResizeLock(new_size, defer_compositor_lock) {}
397 };
398
399 const ui::MotionEventAura& pointer_state_for_test() { 431 const ui::MotionEventAura& pointer_state_for_test() {
400 return event_handler()->pointer_state(); 432 return event_handler()->pointer_state();
401 } 433 }
402 434
403 bool can_create_resize_lock_;
404 gfx::Size last_frame_size_; 435 gfx::Size last_frame_size_;
405 std::unique_ptr<cc::CopyOutputRequest> last_copy_request_; 436 std::unique_ptr<cc::CopyOutputRequest> last_copy_request_;
406 FakeWindowEventDispatcher* dispatcher_; 437 FakeWindowEventDispatcher* dispatcher_;
438
439 private:
440 FakeDelegatedFrameHostClientAura* delegated_frame_host_client_;
441
442 DISALLOW_COPY_AND_ASSIGN(FakeRenderWidgetHostViewAura);
407 }; 443 };
408 444
409 // A layout manager that always resizes a child to the root window size. 445 // A layout manager that always resizes a child to the root window size.
410 class FullscreenLayoutManager : public aura::LayoutManager { 446 class FullscreenLayoutManager : public aura::LayoutManager {
411 public: 447 public:
412 explicit FullscreenLayoutManager(aura::Window* owner) : owner_(owner) {} 448 explicit FullscreenLayoutManager(aura::Window* owner) : owner_(owner) {}
413 ~FullscreenLayoutManager() override {} 449 ~FullscreenLayoutManager() override {}
414 450
415 // Overridden from aura::LayoutManager: 451 // Overridden from aura::LayoutManager:
416 void OnWindowResized() override { 452 void OnWindowResized() override {
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 } 520 }
485 521
486 } // namespace 522 } // namespace
487 523
488 class RenderWidgetHostViewAuraTest : public testing::Test { 524 class RenderWidgetHostViewAuraTest : public testing::Test {
489 public: 525 public:
490 RenderWidgetHostViewAuraTest() 526 RenderWidgetHostViewAuraTest()
491 : widget_host_uses_shutdown_to_destroy_(false), 527 : widget_host_uses_shutdown_to_destroy_(false),
492 is_guest_view_hack_(false) {} 528 is_guest_view_hack_(false) {}
493 529
530 static void InstallDelegatedFrameHostClient(
531 RenderWidgetHostViewAura* render_widget_host_view,
532 std::unique_ptr<DelegatedFrameHostClient> delegated_frame_host_client) {
533 render_widget_host_view->delegated_frame_host_client_ =
534 std::move(delegated_frame_host_client);
535 }
536
494 void SetUpEnvironment() { 537 void SetUpEnvironment() {
495 ImageTransportFactory::InitializeForUnitTests( 538 ImageTransportFactory::InitializeForUnitTests(
496 std::unique_ptr<ImageTransportFactory>( 539 std::unique_ptr<ImageTransportFactory>(
497 new NoTransportImageTransportFactory)); 540 new NoTransportImageTransportFactory));
498 aura_test_helper_.reset( 541 aura_test_helper_.reset(
499 new aura::test::AuraTestHelper(base::MessageLoopForUI::current())); 542 new aura::test::AuraTestHelper(base::MessageLoopForUI::current()));
500 aura_test_helper_->SetUp( 543 aura_test_helper_->SetUp(
501 ImageTransportFactory::GetInstance()->GetContextFactory(), 544 ImageTransportFactory::GetInstance()->GetContextFactory(),
502 ImageTransportFactory::GetInstance()->GetContextFactoryPrivate()); 545 ImageTransportFactory::GetInstance()->GetContextFactoryPrivate());
503 new wm::DefaultActivationClient(aura_test_helper_->root_window()); 546 new wm::DefaultActivationClient(aura_test_helper_->root_window());
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 // destruction. 726 // destruction.
684 MockRenderWidgetHostImpl* widget_host_; 727 MockRenderWidgetHostImpl* widget_host_;
685 FakeRenderWidgetHostViewAura* view_; 728 FakeRenderWidgetHostViewAura* view_;
686 729
687 IPC::TestSink* sink_; 730 IPC::TestSink* sink_;
688 731
689 private: 732 private:
690 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewAuraTest); 733 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewAuraTest);
691 }; 734 };
692 735
736 void InstallDelegatedFrameHostClient(
737 RenderWidgetHostViewAura* render_widget_host_view,
738 std::unique_ptr<DelegatedFrameHostClient> delegated_frame_host_client) {
739 RenderWidgetHostViewAuraTest::InstallDelegatedFrameHostClient(
740 render_widget_host_view, std::move(delegated_frame_host_client));
741 }
742
693 // Helper class to instantiate RenderWidgetHostViewGuest which is backed 743 // Helper class to instantiate RenderWidgetHostViewGuest which is backed
694 // by an aura platform view. 744 // by an aura platform view.
695 class RenderWidgetHostViewGuestAuraTest : public RenderWidgetHostViewAuraTest { 745 class RenderWidgetHostViewGuestAuraTest : public RenderWidgetHostViewAuraTest {
696 public: 746 public:
697 RenderWidgetHostViewGuestAuraTest() { 747 RenderWidgetHostViewGuestAuraTest() {
698 // Use RWH::Shutdown to destroy RWH, instead of deleting. 748 // Use RWH::Shutdown to destroy RWH, instead of deleting.
699 // This will ensure that the RenderWidgetHostViewGuest is not leaked and 749 // This will ensure that the RenderWidgetHostViewGuest is not leaked and
700 // is deleted properly upon RWH going away. 750 // is deleted properly upon RWH going away.
701 set_widget_host_uses_shutdown_to_destroy(true); 751 set_widget_host_uses_shutdown_to_destroy(true);
702 } 752 }
(...skipping 1232 matching lines...) Expand 10 before | Expand all | Expand 10 after
1935 } 1985 }
1936 1986
1937 // If the view size is larger than the compositor frame then extra layers 1987 // If the view size is larger than the compositor frame then extra layers
1938 // should be created to fill the gap. 1988 // should be created to fill the gap.
1939 TEST_F(RenderWidgetHostViewAuraTest, DelegatedFrameGutter) { 1989 TEST_F(RenderWidgetHostViewAuraTest, DelegatedFrameGutter) {
1940 gfx::Size large_size(100, 100); 1990 gfx::Size large_size(100, 100);
1941 gfx::Size small_size(40, 45); 1991 gfx::Size small_size(40, 45);
1942 gfx::Size medium_size(40, 95); 1992 gfx::Size medium_size(40, 95);
1943 1993
1944 // Prevent the DelegatedFrameHost from skipping frames. 1994 // Prevent the DelegatedFrameHost from skipping frames.
1945 view_->can_create_resize_lock_ = false; 1995 // XXX
1996 view_->DisableResizeLock();
1946 1997
1947 view_->InitAsChild(nullptr); 1998 view_->InitAsChild(nullptr);
1948 aura::client::ParentWindowWithContext( 1999 aura::client::ParentWindowWithContext(
1949 view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(), 2000 view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(),
1950 gfx::Rect()); 2001 gfx::Rect());
1951 view_->SetSize(large_size); 2002 view_->SetSize(large_size);
1952 view_->Show(); 2003 view_->Show();
1953 cc::CompositorFrame frame = 2004 cc::CompositorFrame frame =
1954 MakeDelegatedFrame(1.f, small_size, gfx::Rect(small_size)); 2005 MakeDelegatedFrame(1.f, small_size, gfx::Rect(small_size));
1955 frame.metadata.root_background_color = SK_ColorRED; 2006 frame.metadata.root_background_color = SK_ColorRED;
(...skipping 2721 matching lines...) Expand 10 before | Expand all | Expand 10 after
4677 4728
4678 // Retrieve the selected text from clipboard and verify it is as expected. 4729 // Retrieve the selected text from clipboard and verify it is as expected.
4679 base::string16 result_text; 4730 base::string16 result_text;
4680 clipboard->ReadText(ui::CLIPBOARD_TYPE_SELECTION, &result_text); 4731 clipboard->ReadText(ui::CLIPBOARD_TYPE_SELECTION, &result_text);
4681 EXPECT_EQ(expected_text, result_text); 4732 EXPECT_EQ(expected_text, result_text);
4682 } 4733 }
4683 } 4734 }
4684 #endif 4735 #endif
4685 4736
4686 } // namespace content 4737 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698