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

Side by Side Diff: extensions/browser/api/power/power_api_manager.cc

Issue 946643002: Use PowerSaveBlocker for audio and video on Chrome OS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: apply nits Created 5 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "extensions/browser/api/power/power_api_manager.h" 5 #include "extensions/browser/api/power/power_api_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/lazy_instance.h" 8 #include "base/lazy_instance.h"
9 #include "extensions/browser/extension_registry.h" 9 #include "extensions/browser/extension_registry.h"
10 #include "extensions/common/extension.h" 10 #include "extensions/common/extension.h"
11 11
12 namespace extensions { 12 namespace extensions {
13 13
14 namespace { 14 namespace {
15 15
16 const char kPowerSaveBlockerReason[] = "extension"; 16 const char kPowerSaveBlockerDescription[] = "extension";
17 17
18 content::PowerSaveBlocker::PowerSaveBlockerType 18 content::PowerSaveBlocker::PowerSaveBlockerType
19 LevelToPowerSaveBlockerType(core_api::power::Level level) { 19 LevelToPowerSaveBlockerType(core_api::power::Level level) {
20 switch (level) { 20 switch (level) {
21 case core_api::power::LEVEL_SYSTEM: 21 case core_api::power::LEVEL_SYSTEM:
22 return content::PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension; 22 return content::PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension;
23 case core_api::power::LEVEL_DISPLAY: // fallthrough 23 case core_api::power::LEVEL_DISPLAY: // fallthrough
24 case core_api::power::LEVEL_NONE: 24 case core_api::power::LEVEL_NONE:
25 return content::PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep; 25 return content::PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep;
26 } 26 }
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 new_level = it->second; 91 new_level = it->second;
92 } 92 }
93 93
94 // If the level changed and we need to create a new blocker, do a swap 94 // If the level changed and we need to create a new blocker, do a swap
95 // to ensure that there isn't a brief period where power management is 95 // to ensure that there isn't a brief period where power management is
96 // unblocked. 96 // unblocked.
97 if (!power_save_blocker_ || new_level != current_level_) { 97 if (!power_save_blocker_ || new_level != current_level_) {
98 content::PowerSaveBlocker::PowerSaveBlockerType type = 98 content::PowerSaveBlocker::PowerSaveBlockerType type =
99 LevelToPowerSaveBlockerType(new_level); 99 LevelToPowerSaveBlockerType(new_level);
100 scoped_ptr<content::PowerSaveBlocker> new_blocker( 100 scoped_ptr<content::PowerSaveBlocker> new_blocker(
101 create_blocker_function_.Run(type, kPowerSaveBlockerReason)); 101 create_blocker_function_.Run(type,
102 content::PowerSaveBlocker::kReasonOther,
103 kPowerSaveBlockerDescription));
102 power_save_blocker_.swap(new_blocker); 104 power_save_blocker_.swap(new_blocker);
103 current_level_ = new_level; 105 current_level_ = new_level;
104 } 106 }
105 } 107 }
106 108
107 void PowerApiManager::Shutdown() { 109 void PowerApiManager::Shutdown() {
108 // Unregister here rather than in the d'tor; otherwise this call will recreate 110 // Unregister here rather than in the d'tor; otherwise this call will recreate
109 // the already-deleted ExtensionRegistry. 111 // the already-deleted ExtensionRegistry.
110 ExtensionRegistry::Get(browser_context_)->RemoveObserver(this); 112 ExtensionRegistry::Get(browser_context_)->RemoveObserver(this);
111 power_save_blocker_.reset(); 113 power_save_blocker_.reset();
112 } 114 }
113 115
114 } // namespace extensions 116 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/api/power/power_api_manager.h ('k') | extensions/browser/api/power/power_api_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698