| Index: services/service_manager/public/cpp/lib/service_context_ref.cc
 | 
| diff --git a/services/service_manager/public/cpp/lib/service_context_ref.cc b/services/service_manager/public/cpp/lib/service_context_ref.cc
 | 
| deleted file mode 100644
 | 
| index 0a06f1fedef16c152e264053a514237cf82274b7..0000000000000000000000000000000000000000
 | 
| --- a/services/service_manager/public/cpp/lib/service_context_ref.cc
 | 
| +++ /dev/null
 | 
| @@ -1,86 +0,0 @@
 | 
| -// Copyright 2016 The Chromium Authors. All rights reserved.
 | 
| -// Use of this source code is governed by a BSD-style license that can be
 | 
| -// found in the LICENSE file.
 | 
| -
 | 
| -#include "services/service_manager/public/cpp/service_context_ref.h"
 | 
| -
 | 
| -#include "base/bind.h"
 | 
| -#include "base/memory/ptr_util.h"
 | 
| -#include "base/message_loop/message_loop.h"
 | 
| -#include "base/threading/thread_checker.h"
 | 
| -#include "base/threading/thread_task_runner_handle.h"
 | 
| -
 | 
| -namespace service_manager {
 | 
| -
 | 
| -class ServiceContextRefImpl : public ServiceContextRef {
 | 
| - public:
 | 
| -  ServiceContextRefImpl(
 | 
| -      base::WeakPtr<ServiceContextRefFactory> factory,
 | 
| -      scoped_refptr<base::SingleThreadTaskRunner> service_task_runner)
 | 
| -      : factory_(factory),
 | 
| -        service_task_runner_(service_task_runner) {
 | 
| -    // This object is not thread-safe but may be used exclusively on a different
 | 
| -    // thread from the one which constructed it.
 | 
| -    thread_checker_.DetachFromThread();
 | 
| -  }
 | 
| -
 | 
| -  ~ServiceContextRefImpl() override {
 | 
| -    DCHECK(thread_checker_.CalledOnValidThread());
 | 
| -
 | 
| -    if (service_task_runner_->BelongsToCurrentThread() && factory_) {
 | 
| -      factory_->Release();
 | 
| -    } else {
 | 
| -      service_task_runner_->PostTask(
 | 
| -          FROM_HERE,
 | 
| -          base::Bind(&ServiceContextRefFactory::Release, factory_));
 | 
| -    }
 | 
| -  }
 | 
| -
 | 
| - private:
 | 
| -  // ServiceContextRef:
 | 
| -  std::unique_ptr<ServiceContextRef> Clone() override {
 | 
| -    DCHECK(thread_checker_.CalledOnValidThread());
 | 
| -
 | 
| -    if (service_task_runner_->BelongsToCurrentThread() && factory_) {
 | 
| -      factory_->AddRef();
 | 
| -    } else {
 | 
| -      service_task_runner_->PostTask(
 | 
| -          FROM_HERE,
 | 
| -          base::Bind(&ServiceContextRefFactory::AddRef, factory_));
 | 
| -    }
 | 
| -
 | 
| -    return base::MakeUnique<ServiceContextRefImpl>(factory_,
 | 
| -                                                   service_task_runner_);
 | 
| -  }
 | 
| -
 | 
| -  base::WeakPtr<ServiceContextRefFactory> factory_;
 | 
| -  scoped_refptr<base::SingleThreadTaskRunner> service_task_runner_;
 | 
| -  base::ThreadChecker thread_checker_;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(ServiceContextRefImpl);
 | 
| -};
 | 
| -
 | 
| -ServiceContextRefFactory::ServiceContextRefFactory(
 | 
| -    const base::Closure& quit_closure)
 | 
| -    : quit_closure_(quit_closure), weak_factory_(this) {
 | 
| -  DCHECK(!quit_closure_.is_null());
 | 
| -}
 | 
| -
 | 
| -ServiceContextRefFactory::~ServiceContextRefFactory() {}
 | 
| -
 | 
| -std::unique_ptr<ServiceContextRef> ServiceContextRefFactory::CreateRef() {
 | 
| -  AddRef();
 | 
| -  return base::MakeUnique<ServiceContextRefImpl>(
 | 
| -      weak_factory_.GetWeakPtr(), base::ThreadTaskRunnerHandle::Get());
 | 
| -}
 | 
| -
 | 
| -void ServiceContextRefFactory::AddRef() {
 | 
| -  ++ref_count_;
 | 
| -}
 | 
| -
 | 
| -void ServiceContextRefFactory::Release() {
 | 
| -  if (!--ref_count_)
 | 
| -    quit_closure_.Run();
 | 
| -}
 | 
| -
 | 
| -}  // namespace service_manager
 | 
| 
 |