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

Unified Diff: cc/trees/thread_proxy.cc

Issue 85693007: cc: Defer first OutputSurface creation until client is ready (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: cc/trees/thread_proxy.cc
diff --git a/cc/trees/thread_proxy.cc b/cc/trees/thread_proxy.cc
index 89a6773ef38d8bd94fff36ecaf528e046124a866..82cc7bac3dc6b268990a0b311fd075b11b6b68aa 100644
--- a/cc/trees/thread_proxy.cc
+++ b/cc/trees/thread_proxy.cc
@@ -201,8 +201,12 @@ bool ThreadProxy::IsStarted() const {
return started_;
}
-void ThreadProxy::SetLayerTreeHostClientReady() {
+void ThreadProxy::SetLayerTreeHostClientReady(
+ scoped_ptr<OutputSurface> first_output_surface) {
TRACE_EVENT0("cc", "ThreadProxy::SetLayerTreeHostClientReady");
+ DCHECK(first_output_surface);
+ first_output_surface_ = first_output_surface.Pass();
+
Proxy::ImplThreadTaskRunner()->PostTask(
FROM_HERE,
base::Bind(&ThreadProxy::SetLayerTreeHostClientReadyOnImplThread,
@@ -622,10 +626,9 @@ ThreadProxy::contents_texture_manager_on_impl_thread() {
return contents_texture_manager_unsafe_;
}
-void ThreadProxy::Start(scoped_ptr<OutputSurface> first_output_surface) {
+void ThreadProxy::Start() {
DCHECK(IsMainThread());
DCHECK(Proxy::HasImplThread());
- DCHECK(first_output_surface);
// Create LayerTreeHostImpl.
DebugScopedSetMainThreadBlocked main_thread_blocked(this);
@@ -638,7 +641,6 @@ void ThreadProxy::Start(scoped_ptr<OutputSurface> first_output_surface) {
completion.Wait();
main_thread_weak_ptr_ = weak_factory_.GetWeakPtr();
- first_output_surface_ = first_output_surface.Pass();
started_ = true;
}

Powered by Google App Engine
This is Rietveld 408576698