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

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

Issue 1128043008: cc: Don't try set renderpasses on active tree after losing context. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 did_reset_child_id_ = true; 397 did_reset_child_id_ = true;
398 } 398 }
399 399
400 protected: 400 protected:
401 int num_activates_; 401 int num_activates_;
402 bool did_reset_child_id_; 402 bool did_reset_child_id_;
403 }; 403 };
404 404
405 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestCreateChildId); 405 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestCreateChildId);
406 406
407 class LayerTreeHostDelegatedTestDontUseLostChildIdAfterCommit
408 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
409 protected:
410 void BeginTest() override {
411 SetFrameData(CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)));
412 LayerTreeHostDelegatedTestCaseSingleDelegatedLayer::BeginTest();
413 }
414
415 void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override {
416 // Act like the context was lost while the layer is in the pending tree.
417 LayerImpl* root_impl = host_impl->sync_tree()->root_layer();
418 FakeDelegatedRendererLayerImpl* delegated_impl =
419 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]);
420 delegated_impl->ReleaseResources();
421 }
422
423 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override {
424 LayerImpl* root_impl = host_impl->active_tree()->root_layer();
425 FakeDelegatedRendererLayerImpl* delegated_impl =
426 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]);
427
428 // Should not try to activate a frame without a child id. If we did try to
429 // activate we would crash.
430 EXPECT_FALSE(delegated_impl->ChildId());
431 EndTest();
432 }
433 };
434
435 MULTI_THREAD_IMPL_TEST_F(
436 LayerTreeHostDelegatedTestDontUseLostChildIdAfterCommit);
437
407 // Test that we can gracefully handle invalid frames after the context was lost. 438 // Test that we can gracefully handle invalid frames after the context was lost.
408 // For example, we might be trying to use the previous frame in that case and 439 // For example, we might be trying to use the previous frame in that case and
409 // have to make sure we don't crash because our resource accounting goes wrong. 440 // have to make sure we don't crash because our resource accounting goes wrong.
410 class LayerTreeHostDelegatedTestInvalidFrameAfterContextLost 441 class LayerTreeHostDelegatedTestInvalidFrameAfterContextLost
411 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 442 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
412 public: 443 public:
413 LayerTreeHostDelegatedTestInvalidFrameAfterContextLost() 444 LayerTreeHostDelegatedTestInvalidFrameAfterContextLost()
414 : num_activates_(0), num_output_surfaces_initialized_(0) {} 445 : num_activates_(0), num_output_surfaces_initialized_(0) {}
415 446
416 void DidCommit() override { 447 void DidCommit() override {
(...skipping 1837 matching lines...) Expand 10 before | Expand all | Expand 10 after
2254 ReturnAllResourcesFromParent(host_impl); 2285 ReturnAllResourcesFromParent(host_impl);
2255 } 2286 }
2256 2287
2257 bool drew_with_pending_tree_; 2288 bool drew_with_pending_tree_;
2258 }; 2289 };
2259 2290
2260 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostDelegatedTestActiveFrameIsValid); 2291 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostDelegatedTestActiveFrameIsValid);
2261 2292
2262 } // namespace 2293 } // namespace
2263 } // namespace cc 2294 } // namespace cc
OLDNEW
« cc/layers/delegated_renderer_layer_impl.cc ('K') | « cc/layers/delegated_renderer_layer_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698