| Index: content/browser/power_save_blocker_win.cc
 | 
| diff --git a/content/browser/power_save_blocker_win.cc b/content/browser/power_save_blocker_win.cc
 | 
| deleted file mode 100644
 | 
| index e9650a5cc1f634eb827387d6828e81444e0c5fcb..0000000000000000000000000000000000000000
 | 
| --- a/content/browser/power_save_blocker_win.cc
 | 
| +++ /dev/null
 | 
| @@ -1,160 +0,0 @@
 | 
| -// Copyright (c) 2012 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 <windows.h>
 | 
| -
 | 
| -#include "base/bind.h"
 | 
| -#include "base/logging.h"
 | 
| -#include "base/macros.h"
 | 
| -#include "base/strings/utf_string_conversions.h"
 | 
| -#include "base/win/scoped_handle.h"
 | 
| -#include "base/win/windows_version.h"
 | 
| -#include "content/browser/power_save_blocker_impl.h"
 | 
| -
 | 
| -namespace content {
 | 
| -namespace {
 | 
| -
 | 
| -int g_blocker_count[2];
 | 
| -
 | 
| -HANDLE CreatePowerRequest(POWER_REQUEST_TYPE type,
 | 
| -                          const std::string& description) {
 | 
| -  if (type == PowerRequestExecutionRequired &&
 | 
| -      base::win::GetVersion() < base::win::VERSION_WIN8) {
 | 
| -    return INVALID_HANDLE_VALUE;
 | 
| -  }
 | 
| -
 | 
| -  base::string16 wide_description = base::ASCIIToUTF16(description);
 | 
| -  REASON_CONTEXT context = {0};
 | 
| -  context.Version = POWER_REQUEST_CONTEXT_VERSION;
 | 
| -  context.Flags = POWER_REQUEST_CONTEXT_SIMPLE_STRING;
 | 
| -  context.Reason.SimpleReasonString =
 | 
| -      const_cast<wchar_t*>(wide_description.c_str());
 | 
| -
 | 
| -  base::win::ScopedHandle handle(::PowerCreateRequest(&context));
 | 
| -  if (!handle.IsValid())
 | 
| -    return INVALID_HANDLE_VALUE;
 | 
| -
 | 
| -  if (::PowerSetRequest(handle.Get(), type))
 | 
| -    return handle.Take();
 | 
| -
 | 
| -  // Something went wrong.
 | 
| -  return INVALID_HANDLE_VALUE;
 | 
| -}
 | 
| -
 | 
| -// Takes ownership of the |handle|.
 | 
| -void DeletePowerRequest(POWER_REQUEST_TYPE type, HANDLE handle) {
 | 
| -  base::win::ScopedHandle request_handle(handle);
 | 
| -  if (!request_handle.IsValid())
 | 
| -    return;
 | 
| -
 | 
| -  if (type == PowerRequestExecutionRequired &&
 | 
| -      base::win::GetVersion() < base::win::VERSION_WIN8) {
 | 
| -    return;
 | 
| -  }
 | 
| -
 | 
| -  BOOL success = ::PowerClearRequest(request_handle.Get(), type);
 | 
| -  DCHECK(success);
 | 
| -}
 | 
| -
 | 
| -void ApplySimpleBlock(PowerSaveBlocker::PowerSaveBlockerType type,
 | 
| -                      int delta) {
 | 
| -  g_blocker_count[type] += delta;
 | 
| -  DCHECK_GE(g_blocker_count[type], 0);
 | 
| -
 | 
| -  if (g_blocker_count[type] > 1)
 | 
| -    return;
 | 
| -
 | 
| -  DWORD this_flag = 0;
 | 
| -  if (type == PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension)
 | 
| -    this_flag |= ES_SYSTEM_REQUIRED;
 | 
| -  else
 | 
| -    this_flag |= ES_DISPLAY_REQUIRED;
 | 
| -
 | 
| -  DCHECK(this_flag);
 | 
| -
 | 
| -  static DWORD flags = ES_CONTINUOUS;
 | 
| -  if (!g_blocker_count[type])
 | 
| -    flags &= ~this_flag;
 | 
| -  else
 | 
| -    flags |= this_flag;
 | 
| -
 | 
| -  SetThreadExecutionState(flags);
 | 
| -}
 | 
| -
 | 
| -}  // namespace
 | 
| -
 | 
| -class PowerSaveBlockerImpl::Delegate
 | 
| -    : public base::RefCountedThreadSafe<PowerSaveBlockerImpl::Delegate> {
 | 
| - public:
 | 
| -  Delegate(PowerSaveBlockerType type,
 | 
| -           const std::string& description,
 | 
| -           scoped_refptr<base::SequencedTaskRunner> ui_task_runner)
 | 
| -      : type_(type),
 | 
| -        description_(description),
 | 
| -        ui_task_runner_(ui_task_runner) {}
 | 
| -
 | 
| -  // Does the actual work to apply or remove the desired power save block.
 | 
| -  void ApplyBlock();
 | 
| -  void RemoveBlock();
 | 
| -
 | 
| -  // Returns the equivalent POWER_REQUEST_TYPE for this request.
 | 
| -  POWER_REQUEST_TYPE RequestType();
 | 
| -
 | 
| - private:
 | 
| -  friend class base::RefCountedThreadSafe<Delegate>;
 | 
| -  ~Delegate() {}
 | 
| -
 | 
| -  PowerSaveBlockerType type_;
 | 
| -  const std::string description_;
 | 
| -  base::win::ScopedHandle handle_;
 | 
| -  scoped_refptr<base::SequencedTaskRunner> ui_task_runner_;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(Delegate);
 | 
| -};
 | 
| -
 | 
| -void PowerSaveBlockerImpl::Delegate::ApplyBlock() {
 | 
| -  DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
 | 
| -  if (base::win::GetVersion() < base::win::VERSION_WIN7)
 | 
| -    return ApplySimpleBlock(type_, 1);
 | 
| -
 | 
| -  handle_.Set(CreatePowerRequest(RequestType(), description_));
 | 
| -}
 | 
| -
 | 
| -void PowerSaveBlockerImpl::Delegate::RemoveBlock() {
 | 
| -  DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
 | 
| -  if (base::win::GetVersion() < base::win::VERSION_WIN7)
 | 
| -    return ApplySimpleBlock(type_, -1);
 | 
| -
 | 
| -  DeletePowerRequest(RequestType(), handle_.Take());
 | 
| -}
 | 
| -
 | 
| -POWER_REQUEST_TYPE PowerSaveBlockerImpl::Delegate::RequestType() {
 | 
| -  if (type_ == kPowerSaveBlockPreventDisplaySleep)
 | 
| -    return PowerRequestDisplayRequired;
 | 
| -
 | 
| -  if (base::win::GetVersion() < base::win::VERSION_WIN8)
 | 
| -    return PowerRequestSystemRequired;
 | 
| -
 | 
| -  return PowerRequestExecutionRequired;
 | 
| -}
 | 
| -
 | 
| -PowerSaveBlockerImpl::PowerSaveBlockerImpl(
 | 
| -    PowerSaveBlockerType type,
 | 
| -    Reason reason,
 | 
| -    const std::string& description,
 | 
| -    scoped_refptr<base::SequencedTaskRunner> ui_task_runner,
 | 
| -    scoped_refptr<base::SingleThreadTaskRunner> blocking_task_runner)
 | 
| -    : delegate_(new Delegate(type, description, ui_task_runner)),
 | 
| -      ui_task_runner_(ui_task_runner),
 | 
| -      blocking_task_runner_(blocking_task_runner) {
 | 
| -  ui_task_runner_->PostTask(FROM_HERE,
 | 
| -                            base::Bind(&Delegate::ApplyBlock, delegate_));
 | 
| -}
 | 
| -
 | 
| -PowerSaveBlockerImpl::~PowerSaveBlockerImpl() {
 | 
| -  ui_task_runner_->PostTask(FROM_HERE,
 | 
| -                            base::Bind(&Delegate::RemoveBlock, delegate_));
 | 
| -}
 | 
| -
 | 
| -}  // namespace content
 | 
| 
 |