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

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

Issue 2349073002: Blimp Settings framework on the c++ side (Closed)
Patch Set: Settings doesn't own its observer anymore. SettingsFeature subclass SettingsObserver 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/blimp_client_switches.h"
9 #include "blimp/client/core/settings/settings_observer.h"
10 #include "blimp/client/core/settings/settings_prefs.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) return;
David Trainor- moved to gerrit 2016/10/01 03:26:34 if (show_network_stats_ == enable) return; Same
Menglin 2016/10/03 23:08:26 Done.
37
38 show_network_stats_ = enable;
39 FOR_EACH_OBSERVER(SettingsObserver, observers_,
40 OnShowNetworkStatsChanged(show_network_stats_));
41 }
42
43 void Settings::SetEnableBlimpMode(bool enable) {
44 if(blimp_enabled_ == enable) return;
45
46 blimp_enabled_ = enable;
47 local_state_->SetBoolean(prefs::kBlimpEnabled, enable);
48 FOR_EACH_OBSERVER(SettingsObserver, observers_, OnBlimpModeEnabled(enable));
49 FOR_EACH_OBSERVER(SettingsObserver, observers_, OnRestartRequired());
50 }
51
52 void Settings::SetRecordWholeDocument(bool enable) {
53 if (record_whole_document_ == enable) return;
54
55 record_whole_document_ = enable;
56 local_state_->SetBoolean(prefs::kRecordWholeDocument, enable);
57 FOR_EACH_OBSERVER(SettingsObserver, observers_,
58 OnRecordWholeDocumentChanged(enable));
59 FOR_EACH_OBSERVER(SettingsObserver, observers_, OnRestartRequired());
60 }
61
62 void Settings::InitializeFromCommandLineAndPref() {
63 const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
64
65 // Get blimp_enabled_ from cmd line and persistent storage.
66 blimp_enabled_ = cmd_line->HasSwitch(switches::kEnableBlimp) ||
67 local_state_->GetBoolean(prefs::kBlimpEnabled);
68
69 // Get blimp_enabled_ from cmd line and persistent storage, and save the
David Trainor- moved to gerrit 2016/10/01 03:26:34 blimp_enabled_ -> record_whole_document_?
Menglin 2016/10/03 23:08:26 Yeah. bad idea to copy around... thanks!
70 // result to persistent storage.
71 record_whole_document_ =
72 cmd_line->HasSwitch(switches::kDownloadWholeDocument) ||
73 local_state_->GetBoolean(prefs::kRecordWholeDocument);
74 local_state_->SetBoolean(prefs::kRecordWholeDocument, record_whole_document_);
75 }
76
77 // static
78 void Settings::RegisterPrefs(PrefRegistrySimple* registry) {
79 registry->RegisterBooleanPref(prefs::kBlimpEnabled, false);
80 registry->RegisterBooleanPref(prefs::kRecordWholeDocument, false);
81 }
82
83 } // namespace client
84 } // namespace blimp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698