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

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

Issue 337693005: cc: Control defer_commits logic by Scheduler (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 5 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "cc/layers/content_layer.h" 8 #include "cc/layers/content_layer.h"
9 #include "cc/layers/delegated_frame_provider.h" 9 #include "cc/layers/delegated_frame_provider.h"
10 #include "cc/layers/delegated_frame_resource_collection.h" 10 #include "cc/layers/delegated_frame_resource_collection.h"
(...skipping 1742 matching lines...) Expand 10 before | Expand all | Expand 10 after
1753 deferred_ = false; 1753 deferred_ = false;
1754 PostSetNeedsCommitToMainThread(); 1754 PostSetNeedsCommitToMainThread();
1755 } 1755 }
1756 1756
1757 void ScheduledActionWillSendBeginMainFrame() override { 1757 void ScheduledActionWillSendBeginMainFrame() override {
1758 if (deferred_) 1758 if (deferred_)
1759 return; 1759 return;
1760 deferred_ = true; 1760 deferred_ = true;
1761 1761
1762 // Defer commits before the BeginFrame arrives, causing it to be delayed. 1762 // Defer commits before the BeginFrame arrives, causing it to be delayed.
1763 MainThreadTaskRunner()->PostTask( 1763 PostSetDeferCommitsToMainThread(true);
1764 FROM_HERE,
1765 base::Bind(&LayerTreeHostContextTestLoseAfterSendingBeginMainFrame::
1766 DeferCommitsOnMainThread,
1767 base::Unretained(this),
1768 true));
1769 // Meanwhile, lose the context while we are in defer commits. 1764 // Meanwhile, lose the context while we are in defer commits.
1770 ImplThreadTaskRunner()->PostTask( 1765 ImplThreadTaskRunner()->PostTask(
1771 FROM_HERE, 1766 FROM_HERE,
1772 base::Bind(&LayerTreeHostContextTestLoseAfterSendingBeginMainFrame:: 1767 base::Bind(&LayerTreeHostContextTestLoseAfterSendingBeginMainFrame::
1773 LoseContextOnImplThread, 1768 LoseContextOnImplThread,
1774 base::Unretained(this))); 1769 base::Unretained(this)));
1775 } 1770 }
1776 1771
1777 void LoseContextOnImplThread() { 1772 void LoseContextOnImplThread() {
1778 LoseContext(); 1773 LoseContext();
1779 1774
1780 // After losing the context, stop deferring commits. 1775 // After losing the context, stop deferring commits.
1781 MainThreadTaskRunner()->PostTask( 1776 PostSetDeferCommitsToMainThread(false);
1782 FROM_HERE,
1783 base::Bind(&LayerTreeHostContextTestLoseAfterSendingBeginMainFrame::
1784 DeferCommitsOnMainThread,
1785 base::Unretained(this),
1786 false));
1787 } 1777 }
1788 1778
1789 void DeferCommitsOnMainThread(bool defer_commits) { 1779 void DeferCommitsOnMainThread(bool defer_commits) {
brianderson 2015/01/29 04:30:53 Can you delete this now?
simonhong 2015/01/29 16:22:17 Done.
1790 layer_tree_host()->SetDeferCommits(defer_commits); 1780 layer_tree_host()->SetDeferCommits(defer_commits);
1791 } 1781 }
1792 1782
1793 void WillBeginMainFrame() override { 1783 void WillBeginMainFrame() override {
1794 // Don't begin a frame with a lost surface. 1784 // Don't begin a frame with a lost surface.
1795 EXPECT_FALSE(layer_tree_host()->output_surface_lost()); 1785 EXPECT_FALSE(layer_tree_host()->output_surface_lost());
1796 } 1786 }
1797 1787
1798 void DidCommitAndDrawFrame() override { EndTest(); } 1788 void DidCommitAndDrawFrame() override { EndTest(); }
1799 1789
1800 void AfterTest() override {} 1790 void AfterTest() override {}
1801 1791
1802 bool deferred_; 1792 bool deferred_;
1803 }; 1793 };
1804 1794
1805 SINGLE_AND_MULTI_THREAD_TEST_F( 1795 SINGLE_AND_MULTI_THREAD_TEST_F(
1806 LayerTreeHostContextTestLoseAfterSendingBeginMainFrame); 1796 LayerTreeHostContextTestLoseAfterSendingBeginMainFrame);
1807 1797
1808 } // namespace 1798 } // namespace
1809 } // namespace cc 1799 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698