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

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

Issue 859423002: Explicitly specify the ui::Compositor to DelegatedFrameHost (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use compositor Created 5 years, 11 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
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 "content/browser/compositor/delegated_frame_host.h" 5 #include "content/browser/compositor/delegated_frame_host.h"
6 6
7 #include "base/callback_helpers.h" 7 #include "base/callback_helpers.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "cc/output/compositor_frame.h" 9 #include "cc/output/compositor_frame.h"
10 #include "cc/output/compositor_frame_ack.h" 10 #include "cc/output/compositor_frame_ack.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 void DelegatedFrameHostClient::RequestCopyOfOutput( 72 void DelegatedFrameHostClient::RequestCopyOfOutput(
73 scoped_ptr<cc::CopyOutputRequest> request) { 73 scoped_ptr<cc::CopyOutputRequest> request) {
74 GetDelegatedFrameHost()->RequestCopyOfOutput(request.Pass()); 74 GetDelegatedFrameHost()->RequestCopyOfOutput(request.Pass());
75 } 75 }
76 76
77 //////////////////////////////////////////////////////////////////////////////// 77 ////////////////////////////////////////////////////////////////////////////////
78 // DelegatedFrameHost 78 // DelegatedFrameHost
79 79
80 DelegatedFrameHost::DelegatedFrameHost(DelegatedFrameHostClient* client) 80 DelegatedFrameHost::DelegatedFrameHost(DelegatedFrameHostClient* client)
81 : client_(client), 81 : client_(client),
82 compositor_(nullptr),
82 use_surfaces_(UseSurfacesEnabled()), 83 use_surfaces_(UseSurfacesEnabled()),
83 last_output_surface_id_(0), 84 last_output_surface_id_(0),
84 pending_delegated_ack_count_(0), 85 pending_delegated_ack_count_(0),
85 skipped_frames_(false), 86 skipped_frames_(false),
86 current_scale_factor_(1.f), 87 current_scale_factor_(1.f),
87 can_lock_compositor_(YES_CAN_LOCK), 88 can_lock_compositor_(YES_CAN_LOCK),
88 delegated_frame_evictor_(new DelegatedFrameEvictor(this)) { 89 delegated_frame_evictor_(new DelegatedFrameEvictor(this)) {
89 ImageTransportFactory::GetInstance()->AddObserver(this); 90 ImageTransportFactory::GetInstance()->AddObserver(this);
90 } 91 }
91 92
92 void DelegatedFrameHost::WasShown(const ui::LatencyInfo& latency_info) { 93 void DelegatedFrameHost::WasShown(const ui::LatencyInfo& latency_info) {
93 delegated_frame_evictor_->SetVisible(true); 94 delegated_frame_evictor_->SetVisible(true);
94 95
95 if (surface_id_.is_null() && !frame_provider_.get() && 96 if (surface_id_.is_null() && !frame_provider_.get() &&
96 !released_front_lock_.get()) { 97 !released_front_lock_.get()) {
97 ui::Compositor* compositor = client_->GetCompositor(); 98 if (compositor_)
98 if (compositor) 99 released_front_lock_ = compositor_->GetCompositorLock();
99 released_front_lock_ = compositor->GetCompositorLock();
100 } 100 }
101 101
102 ui::Compositor* compositor = client_->GetCompositor(); 102 if (compositor_) {
103 if (compositor) { 103 compositor_->SetLatencyInfo(latency_info);
104 compositor->SetLatencyInfo(latency_info);
105 } 104 }
106 } 105 }
107 106
108 bool DelegatedFrameHost::HasSavedFrame() { 107 bool DelegatedFrameHost::HasSavedFrame() {
109 return delegated_frame_evictor_->HasFrame(); 108 return delegated_frame_evictor_->HasFrame();
110 } 109 }
111 110
112 void DelegatedFrameHost::WasHidden() { 111 void DelegatedFrameHost::WasHidden() {
113 delegated_frame_evictor_->SetVisible(false); 112 delegated_frame_evictor_->SetVisible(false);
114 released_front_lock_ = NULL; 113 released_front_lock_ = NULL;
115 } 114 }
116 115
117 void DelegatedFrameHost::MaybeCreateResizeLock() { 116 void DelegatedFrameHost::MaybeCreateResizeLock() {
118 if (!client_->ShouldCreateResizeLock()) 117 if (!client_->ShouldCreateResizeLock())
119 return; 118 return;
120 DCHECK(client_->GetCompositor()); 119 DCHECK(compositor_);
121
122 // Listen to changes in the compositor lock state.
123 ui::Compositor* compositor = client_->GetCompositor();
124 if (!compositor->HasObserver(this))
125 compositor->AddObserver(this);
126 120
127 bool defer_compositor_lock = 121 bool defer_compositor_lock =
128 can_lock_compositor_ == NO_PENDING_RENDERER_FRAME || 122 can_lock_compositor_ == NO_PENDING_RENDERER_FRAME ||
129 can_lock_compositor_ == NO_PENDING_COMMIT; 123 can_lock_compositor_ == NO_PENDING_COMMIT;
130 124
131 if (can_lock_compositor_ == YES_CAN_LOCK) 125 if (can_lock_compositor_ == YES_CAN_LOCK)
132 can_lock_compositor_ = YES_DID_LOCK; 126 can_lock_compositor_ = YES_DID_LOCK;
133 127
134 resize_lock_ = client_->CreateResizeLock(defer_compositor_lock); 128 resize_lock_ = client_->CreateResizeLock(defer_compositor_lock);
135 } 129 }
136 130
137 bool DelegatedFrameHost::ShouldCreateResizeLock() { 131 bool DelegatedFrameHost::ShouldCreateResizeLock() {
138 RenderWidgetHostImpl* host = client_->GetHost(); 132 RenderWidgetHostImpl* host = client_->GetHost();
139 133
140 if (resize_lock_) 134 if (resize_lock_)
141 return false; 135 return false;
142 136
143 if (host->auto_resize_enabled()) 137 if (host->auto_resize_enabled())
144 return false; 138 return false;
145 139
146 gfx::Size desired_size = client_->DesiredFrameSize(); 140 gfx::Size desired_size = client_->DesiredFrameSize();
147 if (desired_size == current_frame_size_in_dip_ || desired_size.IsEmpty()) 141 if (desired_size == current_frame_size_in_dip_ || desired_size.IsEmpty())
148 return false; 142 return false;
149 143
150 ui::Compositor* compositor = client_->GetCompositor(); 144 if (!compositor_)
151 if (!compositor)
152 return false; 145 return false;
153 146
154 return true; 147 return true;
155 } 148 }
156 149
157 void DelegatedFrameHost::RequestCopyOfOutput( 150 void DelegatedFrameHost::RequestCopyOfOutput(
158 scoped_ptr<cc::CopyOutputRequest> request) { 151 scoped_ptr<cc::CopyOutputRequest> request) {
159 client_->GetLayer()->RequestCopyOfOutput(request.Pass()); 152 client_->GetLayer()->RequestCopyOfOutput(request.Pass());
160 } 153 }
161 154
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 if (subscriber_texture.get()) { 211 if (subscriber_texture.get()) {
219 request->SetTextureMailbox( 212 request->SetTextureMailbox(
220 cc::TextureMailbox(subscriber_texture->mailbox(), 213 cc::TextureMailbox(subscriber_texture->mailbox(),
221 subscriber_texture->target(), 214 subscriber_texture->target(),
222 subscriber_texture->sync_point())); 215 subscriber_texture->sync_point()));
223 } 216 }
224 client_->RequestCopyOfOutput(request.Pass()); 217 client_->RequestCopyOfOutput(request.Pass());
225 } 218 }
226 219
227 bool DelegatedFrameHost::CanCopyToBitmap() const { 220 bool DelegatedFrameHost::CanCopyToBitmap() const {
228 return client_->GetCompositor() && 221 return compositor_ && client_->GetLayer()->has_external_content();
229 client_->GetLayer()->has_external_content();
230 } 222 }
231 223
232 bool DelegatedFrameHost::CanCopyToVideoFrame() const { 224 bool DelegatedFrameHost::CanCopyToVideoFrame() const {
233 return client_->GetCompositor() && 225 return compositor_ && client_->GetLayer()->has_external_content();
234 client_->GetLayer()->has_external_content();
235 } 226 }
236 227
237 bool DelegatedFrameHost::CanSubscribeFrame() const { 228 bool DelegatedFrameHost::CanSubscribeFrame() const {
238 return true; 229 return true;
239 } 230 }
240 231
241 void DelegatedFrameHost::BeginFrameSubscription( 232 void DelegatedFrameHost::BeginFrameSubscription(
242 scoped_ptr<RenderWidgetHostViewFrameSubscriber> subscriber) { 233 scoped_ptr<RenderWidgetHostViewFrameSubscriber> subscriber) {
243 frame_subscriber_ = subscriber.Pass(); 234 frame_subscriber_ = subscriber.Pass();
244 } 235 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 267
277 void DelegatedFrameHost::CheckResizeLock() { 268 void DelegatedFrameHost::CheckResizeLock() {
278 if (!resize_lock_ || 269 if (!resize_lock_ ||
279 resize_lock_->expected_size() != current_frame_size_in_dip_) 270 resize_lock_->expected_size() != current_frame_size_in_dip_)
280 return; 271 return;
281 272
282 // Since we got the size we were looking for, unlock the compositor. But delay 273 // Since we got the size we were looking for, unlock the compositor. But delay
283 // the release of the lock until we've kicked a frame with the new texture, to 274 // the release of the lock until we've kicked a frame with the new texture, to
284 // avoid resizing the UI before we have a chance to draw a "good" frame. 275 // avoid resizing the UI before we have a chance to draw a "good" frame.
285 resize_lock_->UnlockCompositor(); 276 resize_lock_->UnlockCompositor();
286 ui::Compositor* compositor = client_->GetCompositor();
287 if (compositor) {
288 if (!compositor->HasObserver(this))
289 compositor->AddObserver(this);
290 }
291 } 277 }
292 278
293 void DelegatedFrameHost::DidReceiveFrameFromRenderer( 279 void DelegatedFrameHost::DidReceiveFrameFromRenderer(
294 const gfx::Rect& damage_rect) { 280 const gfx::Rect& damage_rect) {
295 if (!frame_subscriber() || !CanCopyToVideoFrame()) 281 if (!frame_subscriber() || !CanCopyToVideoFrame())
296 return; 282 return;
297 283
298 const base::TimeTicks now = gfx::FrameTime::Now(); 284 const base::TimeTicks now = gfx::FrameTime::Now();
299 base::TimeTicks present_time; 285 base::TimeTicks present_time;
300 if (vsync_timebase_.is_null() || vsync_interval_ <= base::TimeDelta()) { 286 if (vsync_timebase_.is_null() || vsync_interval_ <= base::TimeDelta()) {
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 if (resource_collection_.get()) { 364 if (resource_collection_.get()) {
379 resource_collection_->SetClient(NULL); 365 resource_collection_->SetClient(NULL);
380 366
381 if (resource_collection_->LoseAllResources()) 367 if (resource_collection_->LoseAllResources())
382 SendReturnedDelegatedResources(last_output_surface_id_); 368 SendReturnedDelegatedResources(last_output_surface_id_);
383 369
384 resource_collection_ = NULL; 370 resource_collection_ = NULL;
385 } 371 }
386 last_output_surface_id_ = output_surface_id; 372 last_output_surface_id_ = output_surface_id;
387 } 373 }
388 ui::Compositor* compositor = client_->GetCompositor(); 374 bool immediate_ack = !compositor_;
389 bool immediate_ack = !compositor;
390 if (frame_size.IsEmpty()) { 375 if (frame_size.IsEmpty()) {
391 DCHECK(frame_data->resource_list.empty()); 376 DCHECK(frame_data->resource_list.empty());
392 EvictDelegatedFrame(); 377 EvictDelegatedFrame();
393 } else { 378 } else {
394 if (use_surfaces_) { 379 if (use_surfaces_) {
395 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); 380 ImageTransportFactory* factory = ImageTransportFactory::GetInstance();
396 cc::SurfaceManager* manager = factory->GetSurfaceManager(); 381 cc::SurfaceManager* manager = factory->GetSurfaceManager();
397 if (!surface_factory_) { 382 if (!surface_factory_) {
398 id_allocator_ = 383 id_allocator_ =
399 factory->GetContextFactory()->CreateSurfaceIdAllocator(); 384 factory->GetContextFactory()->CreateSurfaceIdAllocator();
(...skipping 23 matching lines...) Expand all
423 compositor_frame->metadata.latency_info.insert( 408 compositor_frame->metadata.latency_info.insert(
424 compositor_frame->metadata.latency_info.end(), 409 compositor_frame->metadata.latency_info.end(),
425 latency_info.begin(), 410 latency_info.begin(),
426 latency_info.end()); 411 latency_info.end());
427 412
428 gfx::Size desired_size = client_->DesiredFrameSize(); 413 gfx::Size desired_size = client_->DesiredFrameSize();
429 if (desired_size != frame_size_in_dip && !desired_size.IsEmpty()) 414 if (desired_size != frame_size_in_dip && !desired_size.IsEmpty())
430 immediate_ack = true; 415 immediate_ack = true;
431 416
432 cc::SurfaceFactory::DrawCallback ack_callback; 417 cc::SurfaceFactory::DrawCallback ack_callback;
433 if (compositor && !immediate_ack) { 418 if (compositor_ && !immediate_ack) {
434 ack_callback = base::Bind(&DelegatedFrameHost::SurfaceDrawn, 419 ack_callback = base::Bind(&DelegatedFrameHost::SurfaceDrawn,
435 AsWeakPtr(), output_surface_id); 420 AsWeakPtr(), output_surface_id);
436 } 421 }
437 surface_factory_->SubmitFrame( 422 surface_factory_->SubmitFrame(
438 surface_id_, compositor_frame.Pass(), ack_callback); 423 surface_id_, compositor_frame.Pass(), ack_callback);
439 } else { 424 } else {
440 if (!resource_collection_.get()) { 425 if (!resource_collection_.get()) {
441 resource_collection_ = new cc::DelegatedFrameResourceCollection; 426 resource_collection_ = new cc::DelegatedFrameResourceCollection;
442 resource_collection_->SetClient(this); 427 resource_collection_->SetClient(this);
443 } 428 }
(...skipping 21 matching lines...) Expand all
465 if (!damage_rect_in_dip.IsEmpty()) 450 if (!damage_rect_in_dip.IsEmpty())
466 client_->GetLayer()->OnDelegatedFrameDamage(damage_rect_in_dip); 451 client_->GetLayer()->OnDelegatedFrameDamage(damage_rect_in_dip);
467 452
468 pending_delegated_ack_count_++; 453 pending_delegated_ack_count_++;
469 454
470 if (immediate_ack) { 455 if (immediate_ack) {
471 SendDelegatedFrameAck(output_surface_id); 456 SendDelegatedFrameAck(output_surface_id);
472 } else if (!use_surfaces_) { 457 } else if (!use_surfaces_) {
473 std::vector<ui::LatencyInfo>::const_iterator it; 458 std::vector<ui::LatencyInfo>::const_iterator it;
474 for (it = latency_info.begin(); it != latency_info.end(); ++it) 459 for (it = latency_info.begin(); it != latency_info.end(); ++it)
475 compositor->SetLatencyInfo(*it); 460 compositor_->SetLatencyInfo(*it);
476 // If we've previously skipped any latency infos add them. 461 // If we've previously skipped any latency infos add them.
477 for (it = skipped_latency_info_list_.begin(); 462 for (it = skipped_latency_info_list_.begin();
478 it != skipped_latency_info_list_.end(); 463 it != skipped_latency_info_list_.end();
479 ++it) 464 ++it)
480 compositor->SetLatencyInfo(*it); 465 compositor_->SetLatencyInfo(*it);
481 skipped_latency_info_list_.clear(); 466 skipped_latency_info_list_.clear();
482 AddOnCommitCallbackAndDisableLocks( 467 AddOnCommitCallbackAndDisableLocks(
483 base::Bind(&DelegatedFrameHost::SendDelegatedFrameAck, 468 base::Bind(&DelegatedFrameHost::SendDelegatedFrameAck,
484 AsWeakPtr(), 469 AsWeakPtr(),
485 output_surface_id)); 470 output_surface_id));
486 } else { 471 } else {
487 AddOnCommitCallbackAndDisableLocks(base::Closure()); 472 AddOnCommitCallbackAndDisableLocks(base::Closure());
488 } 473 }
489 DidReceiveFrameFromRenderer(damage_rect); 474 DidReceiveFrameFromRenderer(damage_rect);
490 if (frame_provider_.get() || !surface_id_.is_null()) 475 if (frame_provider_.get() || !surface_id_.is_null())
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after
917 902
918 void DelegatedFrameHost::OnCompositingLockStateChanged( 903 void DelegatedFrameHost::OnCompositingLockStateChanged(
919 ui::Compositor* compositor) { 904 ui::Compositor* compositor) {
920 // A compositor lock that is part of a resize lock timed out. We 905 // A compositor lock that is part of a resize lock timed out. We
921 // should display a renderer frame. 906 // should display a renderer frame.
922 if (!compositor->IsLocked() && can_lock_compositor_ == YES_DID_LOCK) { 907 if (!compositor->IsLocked() && can_lock_compositor_ == YES_DID_LOCK) {
923 can_lock_compositor_ = NO_PENDING_RENDERER_FRAME; 908 can_lock_compositor_ = NO_PENDING_RENDERER_FRAME;
924 } 909 }
925 } 910 }
926 911
912 void DelegatedFrameHost::OnCompositingShuttingDown(ui::Compositor* compositor) {
913 DCHECK_EQ(compositor, compositor_);
914 ResetCompositor();
915 DCHECK(!compositor_);
916 }
917
927 void DelegatedFrameHost::OnUpdateVSyncParameters( 918 void DelegatedFrameHost::OnUpdateVSyncParameters(
928 base::TimeTicks timebase, 919 base::TimeTicks timebase,
929 base::TimeDelta interval) { 920 base::TimeDelta interval) {
930 vsync_timebase_ = timebase; 921 vsync_timebase_ = timebase;
931 vsync_interval_ = interval; 922 vsync_interval_ = interval;
932 RenderWidgetHostImpl* host = client_->GetHost(); 923 RenderWidgetHostImpl* host = client_->GetHost();
933 if (client_->IsVisible()) 924 if (client_->IsVisible())
934 host->UpdateVSyncParameters(timebase, interval); 925 host->UpdateVSyncParameters(timebase, interval);
935 } 926 }
936 927
937 //////////////////////////////////////////////////////////////////////////////// 928 ////////////////////////////////////////////////////////////////////////////////
938 // RenderWidgetHostViewAura, ImageTransportFactoryObserver implementation: 929 // RenderWidgetHostViewAura, ImageTransportFactoryObserver implementation:
939 930
940 void DelegatedFrameHost::OnLostResources() { 931 void DelegatedFrameHost::OnLostResources() {
941 RenderWidgetHostImpl* host = client_->GetHost(); 932 RenderWidgetHostImpl* host = client_->GetHost();
942 if (frame_provider_.get() || !surface_id_.is_null()) 933 if (frame_provider_.get() || !surface_id_.is_null())
943 EvictDelegatedFrame(); 934 EvictDelegatedFrame();
944 idle_frame_subscriber_textures_.clear(); 935 idle_frame_subscriber_textures_.clear();
945 yuv_readback_pipeline_.reset(); 936 yuv_readback_pipeline_.reset();
946 937
947 host->ScheduleComposite(); 938 host->ScheduleComposite();
948 } 939 }
949 940
950 //////////////////////////////////////////////////////////////////////////////// 941 ////////////////////////////////////////////////////////////////////////////////
951 // DelegatedFrameHost, private: 942 // DelegatedFrameHost, private:
952 943
953 DelegatedFrameHost::~DelegatedFrameHost() { 944 DelegatedFrameHost::~DelegatedFrameHost() {
945 DCHECK(!compositor_);
954 ImageTransportFactory::GetInstance()->RemoveObserver(this); 946 ImageTransportFactory::GetInstance()->RemoveObserver(this);
955 947
956 if (!surface_id_.is_null()) 948 if (!surface_id_.is_null())
957 surface_factory_->Destroy(surface_id_); 949 surface_factory_->Destroy(surface_id_);
958 if (resource_collection_.get()) 950 if (resource_collection_.get())
959 resource_collection_->SetClient(NULL); 951 resource_collection_->SetClient(NULL);
960 952
961 DCHECK(!vsync_manager_.get()); 953 DCHECK(!vsync_manager_.get());
962 } 954 }
963 955
964 void DelegatedFrameHost::RunOnCommitCallbacks() { 956 void DelegatedFrameHost::RunOnCommitCallbacks() {
965 for (std::vector<base::Closure>::const_iterator 957 for (std::vector<base::Closure>::const_iterator
966 it = on_compositing_did_commit_callbacks_.begin(); 958 it = on_compositing_did_commit_callbacks_.begin();
967 it != on_compositing_did_commit_callbacks_.end(); ++it) { 959 it != on_compositing_did_commit_callbacks_.end(); ++it) {
968 it->Run(); 960 it->Run();
969 } 961 }
970 on_compositing_did_commit_callbacks_.clear(); 962 on_compositing_did_commit_callbacks_.clear();
971 } 963 }
972 964
973 void DelegatedFrameHost::AddOnCommitCallbackAndDisableLocks( 965 void DelegatedFrameHost::AddOnCommitCallbackAndDisableLocks(
974 const base::Closure& callback) { 966 const base::Closure& callback) {
975 ui::Compositor* compositor = client_->GetCompositor(); 967 DCHECK(compositor_);
976 DCHECK(compositor);
977
978 if (!compositor->HasObserver(this))
979 compositor->AddObserver(this);
980 968
981 can_lock_compositor_ = NO_PENDING_COMMIT; 969 can_lock_compositor_ = NO_PENDING_COMMIT;
982 if (!callback.is_null()) 970 if (!callback.is_null())
983 on_compositing_did_commit_callbacks_.push_back(callback); 971 on_compositing_did_commit_callbacks_.push_back(callback);
984 } 972 }
985 973
986 void DelegatedFrameHost::AddedToWindow() { 974 void DelegatedFrameHost::SetCompositor(ui::Compositor* compositor) {
987 ui::Compositor* compositor = client_->GetCompositor(); 975 DCHECK(!compositor_);
988 if (compositor) { 976 if (!compositor)
989 DCHECK(!vsync_manager_.get()); 977 return;
990 vsync_manager_ = compositor->vsync_manager(); 978 compositor_ = compositor;
991 vsync_manager_->AddObserver(this); 979 compositor_->AddObserver(this);
992 } 980 DCHECK(!vsync_manager_.get());
981 vsync_manager_ = compositor_->vsync_manager();
982 vsync_manager_->AddObserver(this);
993 } 983 }
994 984
995 void DelegatedFrameHost::RemovingFromWindow() { 985 void DelegatedFrameHost::ResetCompositor() {
986 if (!compositor_)
987 return;
996 RunOnCommitCallbacks(); 988 RunOnCommitCallbacks();
997 resize_lock_.reset(); 989 resize_lock_.reset();
998 client_->GetHost()->WasResized(); 990 client_->GetHost()->WasResized();
999 ui::Compositor* compositor = client_->GetCompositor(); 991 if (compositor_->HasObserver(this))
1000 if (compositor && compositor->HasObserver(this)) 992 compositor_->RemoveObserver(this);
1001 compositor->RemoveObserver(this);
1002
1003 if (vsync_manager_.get()) { 993 if (vsync_manager_.get()) {
1004 vsync_manager_->RemoveObserver(this); 994 vsync_manager_->RemoveObserver(this);
1005 vsync_manager_ = NULL; 995 vsync_manager_ = NULL;
1006 } 996 }
997 compositor_ = nullptr;
1007 } 998 }
1008 999
1009 void DelegatedFrameHost::LockResources() { 1000 void DelegatedFrameHost::LockResources() {
1010 DCHECK(frame_provider_.get() || !surface_id_.is_null()); 1001 DCHECK(frame_provider_.get() || !surface_id_.is_null());
1011 delegated_frame_evictor_->LockFrame(); 1002 delegated_frame_evictor_->LockFrame();
1012 } 1003 }
1013 1004
1014 void DelegatedFrameHost::UnlockResources() { 1005 void DelegatedFrameHost::UnlockResources() {
1015 DCHECK(frame_provider_.get() || !surface_id_.is_null()); 1006 DCHECK(frame_provider_.get() || !surface_id_.is_null());
1016 delegated_frame_evictor_->UnlockFrame(); 1007 delegated_frame_evictor_->UnlockFrame();
(...skipping 16 matching lines...) Expand all
1033 cc::SurfaceManager* manager = factory->GetSurfaceManager(); 1024 cc::SurfaceManager* manager = factory->GetSurfaceManager();
1034 new_layer->SetShowSurface( 1025 new_layer->SetShowSurface(
1035 surface_id_, base::Bind(&SatisfyCallback, base::Unretained(manager)), 1026 surface_id_, base::Bind(&SatisfyCallback, base::Unretained(manager)),
1036 base::Bind(&RequireCallback, base::Unretained(manager)), 1027 base::Bind(&RequireCallback, base::Unretained(manager)),
1037 current_surface_size_, current_scale_factor_, 1028 current_surface_size_, current_scale_factor_,
1038 current_frame_size_in_dip_); 1029 current_frame_size_in_dip_);
1039 } 1030 }
1040 } 1031 }
1041 1032
1042 } // namespace content 1033 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/compositor/delegated_frame_host.h ('k') | content/browser/media/capture/desktop_capture_device_aura.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698