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

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: rebase 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 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 settings.top_controls_show_threshold, 268 settings.top_controls_show_threshold,
269 settings.top_controls_hide_threshold); 269 settings.top_controls_hide_threshold);
270 } 270 }
271 271
272 LayerTreeHostImpl::~LayerTreeHostImpl() { 272 LayerTreeHostImpl::~LayerTreeHostImpl() {
273 DCHECK(task_runner_provider_->IsImplThread()); 273 DCHECK(task_runner_provider_->IsImplThread());
274 TRACE_EVENT0("cc", "LayerTreeHostImpl::~LayerTreeHostImpl()"); 274 TRACE_EVENT0("cc", "LayerTreeHostImpl::~LayerTreeHostImpl()");
275 TRACE_EVENT_OBJECT_DELETED_WITH_ID( 275 TRACE_EVENT_OBJECT_DELETED_WITH_ID(
276 TRACE_DISABLED_BY_DEFAULT("cc.debug"), "cc::LayerTreeHostImpl", id_); 276 TRACE_DISABLED_BY_DEFAULT("cc.debug"), "cc::LayerTreeHostImpl", id_);
277 277
278 // It is released before shutdown.
279 DCHECK(!output_surface_);
280
278 if (input_handler_client_) { 281 if (input_handler_client_) {
279 input_handler_client_->WillShutdown(); 282 input_handler_client_->WillShutdown();
280 input_handler_client_ = NULL; 283 input_handler_client_ = NULL;
281 } 284 }
282 if (scroll_elasticity_helper_) 285 if (scroll_elasticity_helper_)
283 scroll_elasticity_helper_.reset(); 286 scroll_elasticity_helper_.reset();
284 287
285 // The layer trees must be destroyed before the layer tree host. We've 288 // The layer trees must be destroyed before the layer tree host. We've
286 // made a contract with our animation controllers that the animation_host 289 // made a contract with our animation controllers that the animation_host
287 // will outlive them, and we must make good. 290 // will outlive them, and we must make good.
288 if (recycle_tree_) 291 if (recycle_tree_)
289 recycle_tree_->Shutdown(); 292 recycle_tree_->Shutdown();
290 if (pending_tree_) 293 if (pending_tree_)
291 pending_tree_->Shutdown(); 294 pending_tree_->Shutdown();
292 active_tree_->Shutdown(); 295 active_tree_->Shutdown();
293 recycle_tree_ = nullptr; 296 recycle_tree_ = nullptr;
294 pending_tree_ = nullptr; 297 pending_tree_ = nullptr;
295 active_tree_ = nullptr; 298 active_tree_ = nullptr;
296 299
297 animation_host_->ClearTimelines(); 300 animation_host_->ClearTimelines();
298 animation_host_->SetMutatorHostClient(nullptr); 301 animation_host_->SetMutatorHostClient(nullptr);
299 302
300 CleanUpTileManagerAndUIResources(); 303 CleanUpTileManagerAndUIResources();
301 renderer_ = nullptr; 304 renderer_ = nullptr;
302 resource_provider_ = nullptr; 305 resource_provider_ = nullptr;
303
304 if (output_surface_) {
305 output_surface_->DetachFromClient();
306 output_surface_ = nullptr;
307 }
308 } 306 }
309 307
310 void LayerTreeHostImpl::BeginMainFrameAborted(CommitEarlyOutReason reason) { 308 void LayerTreeHostImpl::BeginMainFrameAborted(CommitEarlyOutReason reason) {
311 // If the begin frame data was handled, then scroll and scale set was applied 309 // If the begin frame data was handled, then scroll and scale set was applied
312 // by the main thread, so the active tree needs to be updated as if these sent 310 // by the main thread, so the active tree needs to be updated as if these sent
313 // values were applied and committed. 311 // values were applied and committed.
314 if (CommitEarlyOutHandledCommit(reason)) 312 if (CommitEarlyOutHandledCommit(reason))
315 active_tree_->ApplySentScrollAndScaleDeltasFromAbortedCommit(); 313 active_tree_->ApplySentScrollAndScaleDeltasFromAbortedCommit();
316 } 314 }
317 315
(...skipping 3692 matching lines...) Expand 10 before | Expand all | Expand 10 after
4010 return task_runner_provider_->HasImplThread(); 4008 return task_runner_provider_->HasImplThread();
4011 } 4009 }
4012 4010
4013 bool LayerTreeHostImpl::CommitToActiveTree() const { 4011 bool LayerTreeHostImpl::CommitToActiveTree() const {
4014 // In single threaded mode we skip the pending tree and commit directly to the 4012 // In single threaded mode we skip the pending tree and commit directly to the
4015 // active tree. 4013 // active tree.
4016 return !task_runner_provider_->HasImplThread(); 4014 return !task_runner_provider_->HasImplThread();
4017 } 4015 }
4018 4016
4019 } // namespace cc 4017 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698