| OLD | NEW |
| 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 "net/base/sdch_manager.h" | 5 #include "net/base/sdch_manager.h" |
| 6 | 6 |
| 7 #include "base/base64.h" | 7 #include "base/base64.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
| 10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
| (...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 483 void SdchManager::UrlSafeBase64Encode(const std::string& input, | 483 void SdchManager::UrlSafeBase64Encode(const std::string& input, |
| 484 std::string* output) { | 484 std::string* output) { |
| 485 // Since this is only done during a dictionary load, and hashes are only 8 | 485 // Since this is only done during a dictionary load, and hashes are only 8 |
| 486 // characters, we just do the simple fixup, rather than rewriting the encoder. | 486 // characters, we just do the simple fixup, rather than rewriting the encoder. |
| 487 base::Base64Encode(input, output); | 487 base::Base64Encode(input, output); |
| 488 std::replace(output->begin(), output->end(), '+', '-'); | 488 std::replace(output->begin(), output->end(), '+', '-'); |
| 489 std::replace(output->begin(), output->end(), '/', '_'); | 489 std::replace(output->begin(), output->end(), '/', '_'); |
| 490 } | 490 } |
| 491 | 491 |
| 492 base::Value* SdchManager::SdchInfoToValue() const { | 492 base::Value* SdchManager::SdchInfoToValue() const { |
| 493 base::DictionaryValue* value = new base::DictionaryValue(); | 493 scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue()); |
| 494 | 494 |
| 495 value->SetBoolean("sdch_enabled", sdch_enabled()); | 495 value->SetBoolean("sdch_enabled", sdch_enabled()); |
| 496 value->SetBoolean("secure_scheme_support", secure_scheme_supported()); | 496 value->SetBoolean("secure_scheme_support", secure_scheme_supported()); |
| 497 | 497 |
| 498 base::ListValue* entry_list = new base::ListValue(); | 498 scoped_ptr<base::ListValue> entry_list(new base::ListValue()); |
| 499 for (const auto& entry: dictionaries_) { | 499 for (const auto& entry: dictionaries_) { |
| 500 base::DictionaryValue* entry_dict = new base::DictionaryValue(); | 500 scoped_ptr<base::DictionaryValue> entry_dict(new base::DictionaryValue()); |
| 501 entry_dict->SetString("url", entry.second->data.url().spec()); | 501 entry_dict->SetString("url", entry.second->data.url().spec()); |
| 502 entry_dict->SetString("client_hash", entry.second->data.client_hash()); | 502 entry_dict->SetString("client_hash", entry.second->data.client_hash()); |
| 503 entry_dict->SetString("domain", entry.second->data.domain()); | 503 entry_dict->SetString("domain", entry.second->data.domain()); |
| 504 entry_dict->SetString("path", entry.second->data.path()); | 504 entry_dict->SetString("path", entry.second->data.path()); |
| 505 base::ListValue* port_list = new base::ListValue(); | 505 scoped_ptr<base::ListValue> port_list(new base::ListValue()); |
| 506 for (std::set<int>::const_iterator port_it = | 506 for (std::set<int>::const_iterator port_it = |
| 507 entry.second->data.ports().begin(); | 507 entry.second->data.ports().begin(); |
| 508 port_it != entry.second->data.ports().end(); ++port_it) { | 508 port_it != entry.second->data.ports().end(); ++port_it) { |
| 509 port_list->AppendInteger(*port_it); | 509 port_list->AppendInteger(*port_it); |
| 510 } | 510 } |
| 511 entry_dict->Set("ports", port_list); | 511 entry_dict->Set("ports", port_list.Pass()); |
| 512 entry_dict->SetString("server_hash", entry.first); | 512 entry_dict->SetString("server_hash", entry.first); |
| 513 entry_list->Append(entry_dict); | 513 entry_list->Append(entry_dict.Pass()); |
| 514 } | 514 } |
| 515 value->Set("dictionaries", entry_list); | 515 value->Set("dictionaries", entry_list.Pass()); |
| 516 | 516 |
| 517 entry_list = new base::ListValue(); | 517 entry_list.reset(new base::ListValue()); |
| 518 for (DomainBlacklistInfo::const_iterator it = blacklisted_domains_.begin(); | 518 for (DomainBlacklistInfo::const_iterator it = blacklisted_domains_.begin(); |
| 519 it != blacklisted_domains_.end(); ++it) { | 519 it != blacklisted_domains_.end(); ++it) { |
| 520 if (it->second.count == 0) | 520 if (it->second.count == 0) |
| 521 continue; | 521 continue; |
| 522 base::DictionaryValue* entry_dict = new base::DictionaryValue(); | 522 scoped_ptr<base::DictionaryValue> entry_dict(new base::DictionaryValue()); |
| 523 entry_dict->SetString("domain", it->first); | 523 entry_dict->SetString("domain", it->first); |
| 524 if (it->second.count != INT_MAX) | 524 if (it->second.count != INT_MAX) |
| 525 entry_dict->SetInteger("tries", it->second.count); | 525 entry_dict->SetInteger("tries", it->second.count); |
| 526 entry_dict->SetInteger("reason", it->second.reason); | 526 entry_dict->SetInteger("reason", it->second.reason); |
| 527 entry_list->Append(entry_dict); | 527 entry_list->Append(entry_dict.Pass()); |
| 528 } | 528 } |
| 529 value->Set("blacklisted", entry_list); | 529 value->Set("blacklisted", entry_list.Pass()); |
| 530 | 530 |
| 531 return value; | 531 return value.release(); |
| 532 } | 532 } |
| 533 | 533 |
| 534 } // namespace net | 534 } // namespace net |
| OLD | NEW |