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

Side by Side Diff: blimp/client/core/settings/settings.cc

Issue 2349073002: Blimp Settings framework on the c++ side (Closed)
Patch Set: Merge branch 'refs/heads/master' into settings Created 4 years, 2 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
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "blimp/client/core/settings/settings.h"
6
7 #include "base/command_line.h"
8 #include "blimp/client/core/settings/settings_observer.h"
9 #include "blimp/client/core/settings/settings_prefs.h"
10 #include "blimp/client/core/switches/blimp_client_switches.h"
11 #include "components/prefs/pref_registry_simple.h"
12 #include "components/prefs/pref_service.h"
13
14 namespace blimp {
15 namespace client {
16
17 Settings::Settings(PrefService* local_state)
18 : local_state_(local_state),
19 blimp_enabled_(false),
20 record_whole_document_(false),
21 show_network_stats_(false) {
22 InitializeFromCommandLineAndPref();
23 }
24
25 Settings::~Settings() = default;
26
27 void Settings::AddObserver(SettingsObserver* observer) {
28 observers_.AddObserver(observer);
29 }
30
31 void Settings::RemoveObserver(SettingsObserver* observer) {
32 observers_.RemoveObserver(observer);
33 }
34
35 void Settings::SetShowNetworkStats(bool enable) {
36 if (show_network_stats_ == enable)
37 return;
38
39 show_network_stats_ = enable;
40 FOR_EACH_OBSERVER(SettingsObserver, observers_,
41 OnShowNetworkStatsChanged(show_network_stats_));
42 }
43
44 void Settings::SetEnableBlimpMode(bool enable) {
45 if (blimp_enabled_ == enable)
46 return;
47
48 blimp_enabled_ = enable;
49 local_state_->SetBoolean(prefs::kBlimpEnabled, enable);
50 FOR_EACH_OBSERVER(SettingsObserver, observers_, OnBlimpModeEnabled(enable));
51 FOR_EACH_OBSERVER(SettingsObserver, observers_, OnRestartRequired());
52 }
53
54 void Settings::SetRecordWholeDocument(bool enable) {
55 if (record_whole_document_ == enable)
56 return;
57
58 record_whole_document_ = enable;
59 local_state_->SetBoolean(prefs::kRecordWholeDocument, enable);
60 FOR_EACH_OBSERVER(SettingsObserver, observers_,
61 OnRecordWholeDocumentChanged(enable));
62 FOR_EACH_OBSERVER(SettingsObserver, observers_, OnRestartRequired());
63 }
64
65 void Settings::InitializeFromCommandLineAndPref() {
66 const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
67
68 // Get blimp_enabled_ from cmd line and persistent storage.
David Trainor- moved to gerrit 2016/10/05 23:46:20 s/and/or
Menglin 2016/10/06 22:36:38 Done.
69 blimp_enabled_ = cmd_line->HasSwitch(switches::kEnableBlimp) ||
70 local_state_->GetBoolean(prefs::kBlimpEnabled);
71
72 // Get record_whole_document_ from cmd line and persistent storage, and save
David Trainor- moved to gerrit 2016/10/05 23:46:20 s/and/or
Menglin 2016/10/06 22:36:38 Done.
73 // the result to persistent storage.
74 record_whole_document_ =
75 cmd_line->HasSwitch(switches::kDownloadWholeDocument) ||
76 local_state_->GetBoolean(prefs::kRecordWholeDocument);
77 local_state_->SetBoolean(prefs::kRecordWholeDocument, record_whole_document_);
David Trainor- moved to gerrit 2016/10/05 23:46:20 I'm not sure we want to do this right? We don't w
Menglin 2016/10/06 22:36:38 Done.
78 }
79
80 // static
81 void Settings::RegisterPrefs(PrefRegistrySimple* registry) {
82 registry->RegisterBooleanPref(prefs::kBlimpEnabled, false);
83 registry->RegisterBooleanPref(prefs::kRecordWholeDocument, false);
84 }
85
86 } // namespace client
87 } // namespace blimp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698