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

Unified Diff: chrome/browser/wake_lock/wake_lock_preference.cc

Issue 406483004: Initial implementation of API WakeLock. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 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: chrome/browser/wake_lock/wake_lock_preference.cc
diff --git a/chrome/browser/wake_lock/wake_lock_preference.cc b/chrome/browser/wake_lock/wake_lock_preference.cc
new file mode 100644
index 0000000000000000000000000000000000000000..f7bd4d0239956b1f5bcf3cf59af899330de77511
--- /dev/null
+++ b/chrome/browser/wake_lock/wake_lock_preference.cc
@@ -0,0 +1,63 @@
+// Copyright (c) 2014 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 "chrome/browser/wake_lock/wake_lock_preference.h"
+
+#include "base/prefs/scoped_user_pref_update.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/tab_contents/tab_util.h"
+#include "components/pref_registry/pref_registry_syncable.h"
+#include "content/public/browser/web_contents.h"
+
+const char kWakeLockEnabled[] = "profile.wake_lock_enabled";
+
+// static
+scoped_ptr<WakeLockPreference> WakeLockPreference::createWakeLockPreference(
+ int render_process_id, int routed_id) {
+ return scoped_ptr<WakeLockPreference>(new WakeLockPreference(
+ render_process_id, routed_id));
+}
+
+// static
+void WakeLockPreference::RegisterProfilePrefs(
+ user_prefs::PrefRegistrySyncable* registry) {
+ registry->RegisterDictionaryPref(kWakeLockEnabled,
+ user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
+}
+
+WakeLockPreference::WakeLockPreference(int render_process_id, int routed_id) {
+ content::WebContents* web_contents =
+ tab_util::GetWebContentsByID(render_process_id, routed_id);
+ DCHECK(web_contents);
+ Profile* profile = Profile::FromBrowserContext(
+ web_contents->GetBrowserContext());
+ DCHECK(profile);
+ pref_service_ = profile->GetPrefs();
+ DCHECK(pref_service_);
+}
+
+bool WakeLockPreference::isSavedAllow(const std::string& key) {
+ return (getAllowed(key) != WakeLockPreferenceNotFound);
+}
+
+bool WakeLockPreference::isAllowed(const std::string& key) {
+ return (getAllowed(key) == WakeLockPreferenceYes);
+}
+
+void WakeLockPreference::setAllowed(const std::string& key, bool allowed) {
+ DictionaryPrefUpdate update(pref_service_, kWakeLockEnabled);
+ base::DictionaryValue* inspector_settings = update.Get();
+ inspector_settings->SetWithoutPathExpansion(
+ key, base::Value::CreateBooleanValue(allowed));
+}
+
+WakeLockPreference::WakeLockPreferenceStatus WakeLockPreference::getAllowed(
+ const std::string& key) {
+ const base::DictionaryValue* dict =
+ pref_service_->GetDictionary(kWakeLockEnabled);
+ bool result;
+ if (dict && dict->GetBooleanWithoutPathExpansion(key, &result))
+ return result ? WakeLockPreferenceYes : WakeLockPreferenceNo;
+ return WakeLockPreferenceNotFound;
+}

Powered by Google App Engine
This is Rietveld 408576698