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

Unified Diff: content/browser/power_save_blocker_common.cc

Issue 10542089: Power save blocker: switch to new implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 6 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
Index: content/browser/power_save_blocker_common.cc
===================================================================
--- content/browser/power_save_blocker_common.cc (revision 141149)
+++ content/browser/power_save_blocker_common.cc (working copy)
@@ -1,64 +0,0 @@
-// Copyright (c) 2011 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 "content/browser/power_save_blocker.h"
-
-#include "base/bind.h"
-#include "content/public/browser/browser_thread.h"
-
-using content::BrowserThread;
-
-// Accessed only from the UI thread.
-int PowerSaveBlocker::blocker_count_[kPowerSaveBlockPreventStateCount];
-
-PowerSaveBlocker::PowerSaveBlocker(PowerSaveBlockerType type) : type_(type) {
- DCHECK_LT(kPowerSaveBlockPreventNone, type);
- DCHECK_GT(kPowerSaveBlockPreventStateCount, type);
- std::vector<int> change(kPowerSaveBlockPreventStateCount);
- ++change[type_];
- PostAdjustBlockCount(change);
-}
-
-PowerSaveBlocker::~PowerSaveBlocker(void) {
- std::vector<int> change(kPowerSaveBlockPreventStateCount);
- --change[type_];
- PostAdjustBlockCount(change);
-}
-
-// static
-void PowerSaveBlocker::PostAdjustBlockCount(const std::vector<int>& deltas) {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(&PowerSaveBlocker::AdjustBlockCount, deltas));
-}
-
-// Called only from UI thread.
-// static
-void PowerSaveBlocker::AdjustBlockCount(const std::vector<int>& deltas) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-
- PowerSaveBlockerType old_block = HighestBlockType();
-
- for (size_t i = 0; i < deltas.size(); ++i)
- blocker_count_[i] += deltas[i];
-
- PowerSaveBlockerType new_block = HighestBlockType();
-
- if (new_block != old_block)
- ApplyBlock(new_block);
-}
-
-// Called only from UI thread.
-PowerSaveBlocker::PowerSaveBlockerType PowerSaveBlocker::HighestBlockType() {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-
- for (PowerSaveBlockerType t = kPowerSaveBlockPreventDisplaySleep;
- t >= kPowerSaveBlockPreventSystemSleep;
- t = static_cast<PowerSaveBlockerType>(t - 1)) {
- if (blocker_count_[t])
- return t;
- }
-
- return kPowerSaveBlockPreventNone;
-}

Powered by Google App Engine
This is Rietveld 408576698