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

Side by Side Diff: cc/trees/layer_tree_host_impl.cc

Issue 2100353002: cc: DCHECK that the OutputSurface was released in ~LayerTreeHostImpl(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: released-outputsurface: . Created 4 years, 5 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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 settings.top_controls_show_threshold, 267 settings.top_controls_show_threshold,
268 settings.top_controls_hide_threshold); 268 settings.top_controls_hide_threshold);
269 } 269 }
270 270
271 LayerTreeHostImpl::~LayerTreeHostImpl() { 271 LayerTreeHostImpl::~LayerTreeHostImpl() {
272 DCHECK(task_runner_provider_->IsImplThread()); 272 DCHECK(task_runner_provider_->IsImplThread());
273 TRACE_EVENT0("cc", "LayerTreeHostImpl::~LayerTreeHostImpl()"); 273 TRACE_EVENT0("cc", "LayerTreeHostImpl::~LayerTreeHostImpl()");
274 TRACE_EVENT_OBJECT_DELETED_WITH_ID( 274 TRACE_EVENT_OBJECT_DELETED_WITH_ID(
275 TRACE_DISABLED_BY_DEFAULT("cc.debug"), "cc::LayerTreeHostImpl", id_); 275 TRACE_DISABLED_BY_DEFAULT("cc.debug"), "cc::LayerTreeHostImpl", id_);
276 276
277 // It is released before shutdown.
278 DCHECK(!output_surface_);
279
277 if (input_handler_client_) { 280 if (input_handler_client_) {
278 input_handler_client_->WillShutdown(); 281 input_handler_client_->WillShutdown();
279 input_handler_client_ = NULL; 282 input_handler_client_ = NULL;
280 } 283 }
281 if (scroll_elasticity_helper_) 284 if (scroll_elasticity_helper_)
282 scroll_elasticity_helper_.reset(); 285 scroll_elasticity_helper_.reset();
283 286
284 // The layer trees must be destroyed before the layer tree host. We've 287 // The layer trees must be destroyed before the layer tree host. We've
285 // made a contract with our animation controllers that the animation_host 288 // made a contract with our animation controllers that the animation_host
286 // will outlive them, and we must make good. 289 // will outlive them, and we must make good.
287 if (recycle_tree_) 290 if (recycle_tree_)
288 recycle_tree_->Shutdown(); 291 recycle_tree_->Shutdown();
289 if (pending_tree_) 292 if (pending_tree_)
290 pending_tree_->Shutdown(); 293 pending_tree_->Shutdown();
291 active_tree_->Shutdown(); 294 active_tree_->Shutdown();
292 recycle_tree_ = nullptr; 295 recycle_tree_ = nullptr;
293 pending_tree_ = nullptr; 296 pending_tree_ = nullptr;
294 active_tree_ = nullptr; 297 active_tree_ = nullptr;
295 298
296 animation_host_->ClearTimelines(); 299 animation_host_->ClearTimelines();
297 animation_host_->SetMutatorHostClient(nullptr); 300 animation_host_->SetMutatorHostClient(nullptr);
298 301
299 CleanUpTileManagerAndUIResources(); 302 CleanUpTileManagerAndUIResources();
300 renderer_ = nullptr; 303 renderer_ = nullptr;
301 resource_provider_ = nullptr; 304 resource_provider_ = nullptr;
302
303 if (output_surface_) {
304 output_surface_->DetachFromClient();
305 output_surface_ = nullptr;
306 }
307 } 305 }
308 306
309 void LayerTreeHostImpl::BeginMainFrameAborted(CommitEarlyOutReason reason) { 307 void LayerTreeHostImpl::BeginMainFrameAborted(CommitEarlyOutReason reason) {
310 // If the begin frame data was handled, then scroll and scale set was applied 308 // If the begin frame data was handled, then scroll and scale set was applied
311 // by the main thread, so the active tree needs to be updated as if these sent 309 // by the main thread, so the active tree needs to be updated as if these sent
312 // values were applied and committed. 310 // values were applied and committed.
313 if (CommitEarlyOutHandledCommit(reason)) 311 if (CommitEarlyOutHandledCommit(reason))
314 active_tree_->ApplySentScrollAndScaleDeltasFromAbortedCommit(); 312 active_tree_->ApplySentScrollAndScaleDeltasFromAbortedCommit();
315 } 313 }
316 314
(...skipping 3691 matching lines...) Expand 10 before | Expand all | Expand 10 after
4008 return task_runner_provider_->HasImplThread(); 4006 return task_runner_provider_->HasImplThread();
4009 } 4007 }
4010 4008
4011 bool LayerTreeHostImpl::CommitToActiveTree() const { 4009 bool LayerTreeHostImpl::CommitToActiveTree() const {
4012 // In single threaded mode we skip the pending tree and commit directly to the 4010 // In single threaded mode we skip the pending tree and commit directly to the
4013 // active tree. 4011 // active tree.
4014 return !task_runner_provider_->HasImplThread(); 4012 return !task_runner_provider_->HasImplThread();
4015 } 4013 }
4016 4014
4017 } // namespace cc 4015 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698