| Index: services/gles2/command_buffer_impl.cc
|
| diff --git a/services/gles2/command_buffer_impl.cc b/services/gles2/command_buffer_impl.cc
|
| index 129238c5851a2091d89cbee5f249dea0fd62db55..c370068924bee2e900bfcc102247688d758955d0 100644
|
| --- a/services/gles2/command_buffer_impl.cc
|
| +++ b/services/gles2/command_buffer_impl.cc
|
| @@ -28,8 +28,6 @@ class CommandBufferDriverClientImpl : public CommandBufferDriver::Client {
|
| control_task_runner_(control_task_runner) {}
|
|
|
| private:
|
| - void DidDestroy() override { delete this; }
|
| -
|
| void UpdateVSyncParameters(base::TimeTicks timebase,
|
| base::TimeDelta interval) override {
|
| control_task_runner_->PostTask(
|
| @@ -37,10 +35,10 @@ class CommandBufferDriverClientImpl : public CommandBufferDriver::Client {
|
| command_buffer_, timebase, interval));
|
| }
|
|
|
| - void LostContext(int32_t lost_reason) override {
|
| + void DidLoseContext() override {
|
| control_task_runner_->PostTask(
|
| - FROM_HERE, base::Bind(&CommandBufferImpl::LostContext, command_buffer_,
|
| - lost_reason));
|
| + FROM_HERE, base::Bind(&CommandBufferImpl::DidLoseContext,
|
| + command_buffer_));
|
| }
|
|
|
| base::WeakPtr<CommandBufferImpl> command_buffer_;
|
| @@ -60,8 +58,8 @@ CommandBufferImpl::CommandBufferImpl(
|
| viewport_parameter_listener_(listener.Pass()),
|
| binding_(this),
|
| weak_factory_(this) {
|
| - driver_->set_client(new CommandBufferDriverClientImpl(
|
| - weak_factory_.GetWeakPtr(), control_task_runner));
|
| + driver_->set_client(make_scoped_ptr(new CommandBufferDriverClientImpl(
|
| + weak_factory_.GetWeakPtr(), control_task_runner)));
|
|
|
| control_task_runner->PostTask(
|
| FROM_HERE, base::Bind(&CommandBufferImpl::BindToRequest,
|
| @@ -69,7 +67,6 @@ CommandBufferImpl::CommandBufferImpl(
|
| }
|
|
|
| CommandBufferImpl::~CommandBufferImpl() {
|
| - binding_.client()->DidDestroy();
|
| driver_task_runner_->PostTask(
|
| FROM_HERE, base::Bind(&DestroyDriver, base::Passed(&driver_)));
|
| }
|
| @@ -77,12 +74,14 @@ CommandBufferImpl::~CommandBufferImpl() {
|
| void CommandBufferImpl::Initialize(
|
| mojo::CommandBufferSyncClientPtr sync_client,
|
| mojo::CommandBufferSyncPointClientPtr sync_point_client,
|
| + mojo::CommandBufferLostContextObserverPtr loss_observer,
|
| mojo::ScopedSharedBufferHandle shared_state) {
|
| sync_point_client_ = sync_point_client.Pass();
|
| driver_task_runner_->PostTask(
|
| FROM_HERE,
|
| base::Bind(&CommandBufferDriver::Initialize,
|
| base::Unretained(driver_.get()), base::Passed(&sync_client),
|
| + base::Passed(&loss_observer),
|
| base::Passed(&shared_state)));
|
| }
|
|
|
| @@ -146,8 +145,8 @@ void CommandBufferImpl::BindToRequest(
|
| binding_.Bind(request.Pass());
|
| }
|
|
|
| -void CommandBufferImpl::LostContext(int32_t reason) {
|
| - binding_.client()->LostContext(reason);
|
| +void CommandBufferImpl::DidLoseContext() {
|
| + binding_.OnConnectionError();
|
| }
|
|
|
| void CommandBufferImpl::UpdateVSyncParameters(base::TimeTicks timebase,
|
|
|