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

Side by Side Diff: content/browser/compositor/software_browser_compositor_output_surface_unittest.cc

Issue 161413002: Revert of Read compositor VSync information from platform, when possible (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "base/message_loop/message_loop.h" 5 #include "base/message_loop/message_loop.h"
6 #include "cc/output/compositor_frame.h" 6 #include "cc/output/compositor_frame.h"
7 #include "content/browser/compositor/browser_compositor_output_surface_proxy.h" 7 #include "content/browser/compositor/browser_compositor_output_surface_proxy.h"
8 #include "content/browser/compositor/software_browser_compositor_output_surface. h" 8 #include "content/browser/compositor/software_browser_compositor_output_surface. h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "ui/compositor/compositor.h"
11 #include "ui/compositor/test/context_factories_for_test.h" 10 #include "ui/compositor/test/context_factories_for_test.h"
12 #include "ui/gfx/vsync_provider.h" 11 #include "ui/gfx/vsync_provider.h"
13 12
14 namespace { 13 namespace {
15 14
16 class FakeVSyncProvider : public gfx::VSyncProvider { 15 class FakeVSyncProvider : public gfx::VSyncProvider {
17 public: 16 public:
18 FakeVSyncProvider() : call_count_(0) {} 17 FakeVSyncProvider() : call_count_(0) {}
19 virtual ~FakeVSyncProvider() {} 18 virtual ~FakeVSyncProvider() {}
20 19
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 scoped_ptr<ui::Compositor> compositor_; 72 scoped_ptr<ui::Compositor> compositor_;
74 73
75 IDMap<content::BrowserCompositorOutputSurface> surface_map_; 74 IDMap<content::BrowserCompositorOutputSurface> surface_map_;
76 scoped_refptr<content::BrowserCompositorOutputSurfaceProxy> surface_proxy_; 75 scoped_refptr<content::BrowserCompositorOutputSurfaceProxy> surface_proxy_;
77 76
78 DISALLOW_COPY_AND_ASSIGN(SoftwareBrowserCompositorOutputSurfaceTest); 77 DISALLOW_COPY_AND_ASSIGN(SoftwareBrowserCompositorOutputSurfaceTest);
79 }; 78 };
80 79
81 SoftwareBrowserCompositorOutputSurfaceTest:: 80 SoftwareBrowserCompositorOutputSurfaceTest::
82 SoftwareBrowserCompositorOutputSurfaceTest() { 81 SoftwareBrowserCompositorOutputSurfaceTest() {
83 // |message_loop_| is not used, but the main thread still has to exist for the
84 // compositor to use.
85 message_loop_.reset(new base::MessageLoopForUI); 82 message_loop_.reset(new base::MessageLoopForUI);
86 } 83 }
87 84
88 SoftwareBrowserCompositorOutputSurfaceTest:: 85 SoftwareBrowserCompositorOutputSurfaceTest::
89 ~SoftwareBrowserCompositorOutputSurfaceTest() {} 86 ~SoftwareBrowserCompositorOutputSurfaceTest() {}
90 87
91 void SoftwareBrowserCompositorOutputSurfaceTest::SetUp() { 88 void SoftwareBrowserCompositorOutputSurfaceTest::SetUp() {
92 ui::InitializeContextFactoryForTests(false); 89 ui::InitializeContextFactoryForTests(false);
93 ui::Compositor::Initialize(); 90 ui::Compositor::Initialize();
94 91
(...skipping 15 matching lines...) Expand all
110 107
111 scoped_ptr<content::BrowserCompositorOutputSurface> 108 scoped_ptr<content::BrowserCompositorOutputSurface>
112 SoftwareBrowserCompositorOutputSurfaceTest::CreateSurface( 109 SoftwareBrowserCompositorOutputSurfaceTest::CreateSurface(
113 scoped_ptr<cc::SoftwareOutputDevice> device) { 110 scoped_ptr<cc::SoftwareOutputDevice> device) {
114 return scoped_ptr<content::BrowserCompositorOutputSurface>( 111 return scoped_ptr<content::BrowserCompositorOutputSurface>(
115 new content::SoftwareBrowserCompositorOutputSurface( 112 new content::SoftwareBrowserCompositorOutputSurface(
116 surface_proxy_, 113 surface_proxy_,
117 device.Pass(), 114 device.Pass(),
118 1, 115 1,
119 &surface_map_, 116 &surface_map_,
120 compositor_->vsync_manager())); 117 compositor_->GetCompositorMessageLoop(),
118 compositor_->AsWeakPtr()));
121 } 119 }
122 120
123 TEST_F(SoftwareBrowserCompositorOutputSurfaceTest, NoVSyncProvider) { 121 TEST_F(SoftwareBrowserCompositorOutputSurfaceTest, NoVSyncProvider) {
124 scoped_ptr<cc::SoftwareOutputDevice> software_device( 122 scoped_ptr<cc::SoftwareOutputDevice> software_device(
125 new cc::SoftwareOutputDevice()); 123 new cc::SoftwareOutputDevice());
126 output_surface_ = CreateSurface(software_device.Pass()); 124 output_surface_ = CreateSurface(software_device.Pass());
127 125
128 cc::CompositorFrame frame; 126 cc::CompositorFrame frame;
129 output_surface_->SwapBuffers(&frame); 127 output_surface_->SwapBuffers(&frame);
130 128
131 EXPECT_EQ(NULL, output_surface_->software_device()->GetVSyncProvider()); 129 EXPECT_EQ(NULL, output_surface_->software_device()->GetVSyncProvider());
132 } 130 }
133 131
134 TEST_F(SoftwareBrowserCompositorOutputSurfaceTest, VSyncProviderUpdates) { 132 TEST_F(SoftwareBrowserCompositorOutputSurfaceTest, VSyncProviderUpdates) {
135 scoped_ptr<cc::SoftwareOutputDevice> software_device( 133 scoped_ptr<cc::SoftwareOutputDevice> software_device(
136 new FakeSoftwareOutputDevice()); 134 new FakeSoftwareOutputDevice());
137 output_surface_ = CreateSurface(software_device.Pass()); 135 output_surface_ = CreateSurface(software_device.Pass());
138 136
139 FakeVSyncProvider* vsync_provider = static_cast<FakeVSyncProvider*>( 137 FakeVSyncProvider* vsync_provider = static_cast<FakeVSyncProvider*>(
140 output_surface_->software_device()->GetVSyncProvider()); 138 output_surface_->software_device()->GetVSyncProvider());
141 EXPECT_EQ(0, vsync_provider->call_count()); 139 EXPECT_EQ(0, vsync_provider->call_count());
142 140
143 cc::CompositorFrame frame; 141 cc::CompositorFrame frame;
144 output_surface_->SwapBuffers(&frame); 142 output_surface_->SwapBuffers(&frame);
145 143
146 EXPECT_EQ(1, vsync_provider->call_count()); 144 EXPECT_EQ(1, vsync_provider->call_count());
147 } 145 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698