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

Side by Side Diff: chrome/service/cloud_print/connector_settings.cc

Issue 14215009: Changed cloud print private API to pass all page settings as single object. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/service/cloud_print/connector_settings.h" 5 #include "chrome/service/cloud_print/connector_settings.h"
6 6
7 #include "base/values.h" 7 #include "base/values.h"
8 #include "chrome/common/cloud_print/cloud_print_constants.h" 8 #include "chrome/common/cloud_print/cloud_print_constants.h"
9 #include "chrome/common/pref_names.h" 9 #include "chrome/common/pref_names.h"
10 #include "chrome/service/cloud_print/print_system.h" 10 #include "chrome/service/cloud_print/print_system.h"
11 #include "chrome/service/service_process_prefs.h" 11 #include "chrome/service/service_process_prefs.h"
12 12
13 namespace { 13 namespace {
14 14
15 const char kDefaultCloudPrintServerUrl[] = "https://www.google.com/cloudprint"; 15 const char kDefaultCloudPrintServerUrl[] = "https://www.google.com/cloudprint";
16 const char kDeleteOnEnumFail[] = "delete_on_enum_fail"; 16 const char kDeleteOnEnumFail[] = "delete_on_enum_fail";
17 const char kName[] = "name";
18 const char kConnect[] = "connect";
17 19
18 } // namespace 20 } // namespace
19 21
20 namespace cloud_print { 22 namespace cloud_print {
21 23
22 ConnectorSettings::ConnectorSettings() 24 ConnectorSettings::ConnectorSettings()
23 : delete_on_enum_fail_(false), 25 : delete_on_enum_fail_(false),
24 connect_new_printers_(true), 26 connect_new_printers_(true),
25 xmpp_ping_enabled_(false), 27 xmpp_ping_enabled_(false),
26 xmpp_ping_timeout_sec_(kDefaultXmppPingTimeoutSecs) { 28 xmpp_ping_timeout_sec_(kDefaultXmppPingTimeoutSecs) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 63
62 connect_new_printers_ = prefs->GetBoolean( 64 connect_new_printers_ = prefs->GetBoolean(
63 prefs::kCloudPrintConnectNewPrinters, true); 65 prefs::kCloudPrintConnectNewPrinters, true);
64 66
65 xmpp_ping_enabled_ = prefs->GetBoolean( 67 xmpp_ping_enabled_ = prefs->GetBoolean(
66 prefs::kCloudPrintXmppPingEnabled, false); 68 prefs::kCloudPrintXmppPingEnabled, false);
67 int timeout = prefs->GetInt( 69 int timeout = prefs->GetInt(
68 prefs::kCloudPrintXmppPingTimeout, kDefaultXmppPingTimeoutSecs); 70 prefs::kCloudPrintXmppPingTimeout, kDefaultXmppPingTimeoutSecs);
69 SetXmppPingTimeoutSec(timeout); 71 SetXmppPingTimeoutSec(timeout);
70 72
71 const base::ListValue* printers = prefs->GetList( 73 const base::ListValue* printers = prefs->GetList(prefs::kCloudPrintPrinters);
72 prefs::kCloudPrintPrinterBlacklist);
73 if (printers) { 74 if (printers) {
74 for (size_t i = 0; i < printers->GetSize(); ++i) { 75 for (size_t i = 0; i < printers->GetSize(); ++i) {
75 std::string printer; 76 const base::DictionaryValue* dictionary = NULL;
76 if (printers->GetString(i, &printer)) 77 if (printers->GetDictionary(i, &dictionary) && dictionary) {
77 printer_blacklist_.insert(printer); 78 std::string name;
79 dictionary->GetString(kName, &name);
80 if (!name.empty()) {
81 bool connect = connect_new_printers_;
82 dictionary->GetBoolean(kConnect, &connect);
83 if (connect != connect_new_printers_)
84 printers_.insert(name);
85 }
86 }
78 } 87 }
79 } 88 }
80 } 89 }
81 90
82 bool ConnectorSettings::IsPrinterBlacklisted(const std::string& name) const { 91 bool ConnectorSettings::ShouldConnect(const std::string& printer_name) const {
83 return printer_blacklist_.find(name) != printer_blacklist_.end(); 92 Printers::const_iterator printer = printers_.find(printer_name);
84 }; 93 if (printer != printers_.end())
94 return !connect_new_printers_;
95 return connect_new_printers_;
96 }
85 97
86 void ConnectorSettings::CopyFrom(const ConnectorSettings& source) { 98 void ConnectorSettings::CopyFrom(const ConnectorSettings& source) {
87 server_url_ = source.server_url(); 99 server_url_ = source.server_url();
88 proxy_id_ = source.proxy_id(); 100 proxy_id_ = source.proxy_id();
89 delete_on_enum_fail_ = source.delete_on_enum_fail(); 101 delete_on_enum_fail_ = source.delete_on_enum_fail();
90 connect_new_printers_ = source.connect_new_printers(); 102 connect_new_printers_ = source.connect_new_printers_;
91 xmpp_ping_enabled_ = source.xmpp_ping_enabled(); 103 xmpp_ping_enabled_ = source.xmpp_ping_enabled();
92 xmpp_ping_timeout_sec_ = source.xmpp_ping_timeout_sec(); 104 xmpp_ping_timeout_sec_ = source.xmpp_ping_timeout_sec();
93 printer_blacklist_ = source.printer_blacklist_; 105 printers_ = source.printers_;
94 if (source.print_system_settings()) 106 if (source.print_system_settings())
95 print_system_settings_.reset(source.print_system_settings()->DeepCopy()); 107 print_system_settings_.reset(source.print_system_settings()->DeepCopy());
96 } 108 }
97 109
98 void ConnectorSettings::SetXmppPingTimeoutSec(int timeout) { 110 void ConnectorSettings::SetXmppPingTimeoutSec(int timeout) {
99 xmpp_ping_timeout_sec_ = timeout; 111 xmpp_ping_timeout_sec_ = timeout;
100 if (xmpp_ping_timeout_sec_ < kMinimumXmppPingTimeoutSecs) { 112 if (xmpp_ping_timeout_sec_ < kMinimumXmppPingTimeoutSecs) {
101 LOG(WARNING) << 113 LOG(WARNING) <<
102 "CP_CONNECTOR: XMPP ping timeout is less then minimal value"; 114 "CP_CONNECTOR: XMPP ping timeout is less then minimal value";
103 xmpp_ping_timeout_sec_ = kMinimumXmppPingTimeoutSecs; 115 xmpp_ping_timeout_sec_ = kMinimumXmppPingTimeoutSecs;
104 } 116 }
105 } 117 }
106 118
107 } // namespace cloud_print 119 } // namespace cloud_print
OLDNEW
« no previous file with comments | « chrome/service/cloud_print/connector_settings.h ('k') | chrome/service/cloud_print/connector_settings_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698