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

Unified Diff: blimp/client/core/compositor/blimp_compositor_frame_sink.cc

Issue 2404993002: cc: Stop calling DetachFromClient if bind failed. (Closed)
Patch Set: detachinternal: rebase Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « blimp/client/core/compositor/blimp_compositor_frame_sink.h ('k') | cc/output/compositor_frame_sink.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: blimp/client/core/compositor/blimp_compositor_frame_sink.cc
diff --git a/blimp/client/core/compositor/blimp_compositor_frame_sink.cc b/blimp/client/core/compositor/blimp_compositor_frame_sink.cc
index 439585555ca623d76e610b9733fc66f830b4a2e4..c5ed1af061a0d5a4f5926b31c7e899c66305822e 100644
--- a/blimp/client/core/compositor/blimp_compositor_frame_sink.cc
+++ b/blimp/client/core/compositor/blimp_compositor_frame_sink.cc
@@ -27,7 +27,6 @@ BlimpCompositorFrameSink::BlimpCompositorFrameSink(
std::move(worker_context_provider)),
main_task_runner_(std::move(main_task_runner)),
main_thread_proxy_(main_thread_proxy),
- bound_to_client_(false),
weak_factory_(this) {
DCHECK(main_task_runner_->BelongsToCurrentThread());
}
@@ -46,30 +45,26 @@ void BlimpCompositorFrameSink::SwapCompositorFrameAck() {
bool BlimpCompositorFrameSink::BindToClient(
cc::CompositorFrameSinkClient* client) {
- bool success = cc::CompositorFrameSink::BindToClient(client);
- if (success) {
- begin_frame_source_ = base::MakeUnique<cc::DelayBasedBeginFrameSource>(
- base::MakeUnique<cc::DelayBasedTimeSource>(
- base::ThreadTaskRunnerHandle::Get().get()));
- client->SetBeginFrameSource(begin_frame_source_.get());
+ if (!cc::CompositorFrameSink::BindToClient(client))
+ return false;
- main_task_runner_->PostTask(
- FROM_HERE, base::Bind(&BlimpCompositorFrameSinkProxy::BindToProxyClient,
- main_thread_proxy_, weak_factory_.GetWeakPtr()));
- }
- return success;
+ begin_frame_source_ = base::MakeUnique<cc::DelayBasedBeginFrameSource>(
+ base::MakeUnique<cc::DelayBasedTimeSource>(
+ base::ThreadTaskRunnerHandle::Get().get()));
+ client->SetBeginFrameSource(begin_frame_source_.get());
+
+ main_task_runner_->PostTask(
+ FROM_HERE, base::Bind(&BlimpCompositorFrameSinkProxy::BindToProxyClient,
+ main_thread_proxy_, weak_factory_.GetWeakPtr()));
+ return true;
}
void BlimpCompositorFrameSink::DetachFromClient() {
cc::CompositorFrameSink::DetachFromClient();
- if (bound_to_client_ == true) {
- bound_to_client_ = false;
- main_task_runner_->PostTask(
- FROM_HERE, base::Bind(&BlimpCompositorFrameSinkProxy::UnbindProxyClient,
- main_thread_proxy_));
- }
-
+ main_task_runner_->PostTask(
+ FROM_HERE, base::Bind(&BlimpCompositorFrameSinkProxy::UnbindProxyClient,
+ main_thread_proxy_));
weak_factory_.InvalidateWeakPtrs();
}
« no previous file with comments | « blimp/client/core/compositor/blimp_compositor_frame_sink.h ('k') | cc/output/compositor_frame_sink.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698