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

Unified Diff: chrome/browser/net/http_server_properties_manager.cc

Issue 9158025: Ignore the following http server properties in prefs file (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 8 years, 11 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/net/http_server_properties_manager.cc
===================================================================
--- chrome/browser/net/http_server_properties_manager.cc (revision 116851)
+++ chrome/browser/net/http_server_properties_manager.cc (working copy)
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 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/net/http_server_properties_manager.h"
@@ -237,6 +237,7 @@
net::PipelineCapabilityMap* pipeline_capability_map =
new net::PipelineCapabilityMap;
+ bool detected_corrupted_prefs = false;
const base::DictionaryValue& http_server_properties_dict =
*pref_service_->GetDictionary(prefs::kHttpServerProperties);
for (base::DictionaryValue::key_iterator it =
@@ -247,7 +248,7 @@
net::HostPortPair server = net::HostPortPair::FromString(server_str);
if (server.host().empty()) {
DVLOG(1) << "Malformed http_server_properties for server: " << server_str;
- NOTREACHED();
+ detected_corrupted_prefs = true;
continue;
}
@@ -255,7 +256,7 @@
if (!http_server_properties_dict.GetDictionaryWithoutPathExpansion(
server_str, &server_pref_dict)) {
DVLOG(1) << "Malformed http_server_properties server: " << server_str;
- NOTREACHED();
+ detected_corrupted_prefs = true;
continue;
}
@@ -278,7 +279,7 @@
list_it != spdy_settings_list->end(); ++list_it) {
if ((*list_it)->GetType() != Value::TYPE_DICTIONARY) {
DVLOG(1) << "Malformed SpdySettingsList for server: " << server_str;
- NOTREACHED();
+ detected_corrupted_prefs = true;
continue;
}
@@ -288,7 +289,7 @@
int id = 0;
if (!spdy_setting_dict->GetIntegerWithoutPathExpansion("id", &id)) {
DVLOG(1) << "Malformed id in SpdySettings for server: " << server_str;
- NOTREACHED();
+ detected_corrupted_prefs = true;
continue;
}
@@ -297,7 +298,7 @@
&value)) {
DVLOG(1) << "Malformed value in SpdySettings for server: " <<
server_str;
- NOTREACHED();
+ detected_corrupted_prefs = true;
continue;
}
@@ -332,7 +333,7 @@
if (!port_alternate_protocol_dict->GetIntegerWithoutPathExpansion(
"port", &port) || (port > (1 << 16))) {
DVLOG(1) << "Malformed Alternate-Protocol server: " << server_str;
- NOTREACHED();
+ detected_corrupted_prefs = true;
continue;
}
int protocol = 0;
@@ -340,7 +341,7 @@
"protocol", &protocol) || (protocol < 0) ||
(protocol > net::NUM_ALTERNATE_PROTOCOLS)) {
DVLOG(1) << "Malformed Alternate-Protocol server: " << server_str;
- NOTREACHED();
+ detected_corrupted_prefs = true;
continue;
}
@@ -362,14 +363,16 @@
base::Owned(spdy_servers),
base::Owned(spdy_settings_map),
base::Owned(alternate_protocol_map),
- base::Owned(pipeline_capability_map)));
+ base::Owned(pipeline_capability_map),
+ detected_corrupted_prefs));
}
void HttpServerPropertiesManager::UpdateCacheFromPrefsOnIO(
StringVector* spdy_servers,
net::SpdySettingsMap* spdy_settings_map,
net::AlternateProtocolMap* alternate_protocol_map,
- net::PipelineCapabilityMap* pipeline_capability_map) {
+ net::PipelineCapabilityMap* pipeline_capability_map,
+ bool detected_corrupted_prefs) {
// Preferences have the master data because admins might have pushed new
// preferences. Update the cached data with new data from preferences.
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
@@ -387,6 +390,10 @@
http_server_properties_impl_->InitializePipelineCapabilities(
pipeline_capability_map);
+
+ // Update the prefs with what we have read (delete all corrupted prefs).
+ if (detected_corrupted_prefs)
+ ScheduleUpdatePrefsOnIO();
}
« no previous file with comments | « chrome/browser/net/http_server_properties_manager.h ('k') | chrome/browser/net/http_server_properties_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698