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

Unified Diff: chrome/browser/managed_mode/managed_mode_site_list.cc

Issue 335833003: Rename "managed (mode|user)" to "supervised user" (part 2) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review comments (+ a few other cleanups) Created 6 years, 6 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/managed_mode/managed_mode_site_list.cc
diff --git a/chrome/browser/managed_mode/managed_mode_site_list.cc b/chrome/browser/managed_mode/managed_mode_site_list.cc
deleted file mode 100644
index e254381b14081568eba97526c12e51b1fd63a5fc..0000000000000000000000000000000000000000
--- a/chrome/browser/managed_mode/managed_mode_site_list.cc
+++ /dev/null
@@ -1,255 +0,0 @@
-// 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/managed_mode/managed_mode_site_list.h"
-
-#include "base/json/json_file_value_serializer.h"
-#include "base/logging.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/values.h"
-#include "extensions/common/extension.h"
-
-using base::DictionaryValue;
-using base::ListValue;
-using base::Value;
-
-const int kSitelistFormatVersion = 1;
-
-const char kCategoriesKey[] = "categories";
-const char kHostnameHashesKey[] = "hostname_hashes";
-const char kNameKey[] = "name";
-const char kSitesKey[] = "sites";
-const char kSitelistFormatVersionKey[] = "version";
-const char kThumbnailKey[] = "thumbnail";
-const char kThumbnailUrlKey[] = "thumbnail_url";
-const char kUrlKey[] = "url";
-const char kWhitelistKey[] = "whitelist";
-
-namespace {
-
-struct CategoryInfo {
- const char* identifier;
- const char* name;
-};
-
-// These are placeholders for now.
-CategoryInfo g_categories[] = {
- {"com.google.chrome.animals", "Animals and Plants"},
- {"com.google.chrome.arts", "Arts"},
- {"com.google.chrome.business", "Business"},
- {"com.google.chrome.computers", "Computers"},
- {"com.google.chrome.education", "Education"},
- {"com.google.chrome.entertainment", "Entertainment"},
- {"com.google.chrome.games", "Games"},
- {"com.google.chrome.health", "Health"},
- {"com.google.chrome.home", "Home"},
- {"com.google.chrome.international", "International"},
- {"com.google.chrome.news", "News"},
- {"com.google.chrome.people", "People and Society"},
- {"com.google.chrome.places", "Places"},
- {"com.google.chrome.pre-school", "Pre-School"},
- {"com.google.chrome.reference", "Reference"},
- {"com.google.chrome.science", "Science"},
- {"com.google.chrome.shopping", "Shopping"},
- {"com.google.chrome.sports", "Sports and Hobbies"},
- {"com.google.chrome.teens", "Teens"}
-};
-
-// Category 0 is "not listed"; actual category IDs start at 1.
-int GetCategoryId(const std::string& category) {
- for (size_t i = 0; i < arraysize(g_categories); ++i) {
- if (g_categories[i].identifier == category)
- return i + 1;
- }
- return 0;
-}
-
-// Takes a DictionaryValue entry from the JSON file and fills the whitelist
-// (via URL patterns or hostname hashes) and the URL in the corresponding Site
-// struct.
-void AddWhitelistEntries(const base::DictionaryValue* site_dict,
- ManagedModeSiteList::Site* site) {
- std::vector<std::string>* patterns = &site->patterns;
-
- bool found = false;
- const base::ListValue* whitelist = NULL;
- if (site_dict->GetList(kWhitelistKey, &whitelist)) {
- found = true;
- for (base::ListValue::const_iterator whitelist_it = whitelist->begin();
- whitelist_it != whitelist->end(); ++whitelist_it) {
- std::string pattern;
- if (!(*whitelist_it)->GetAsString(&pattern)) {
- LOG(ERROR) << "Invalid whitelist entry";
- continue;
- }
-
- patterns->push_back(pattern);
- }
- }
-
- std::vector<std::string>* hashes = &site->hostname_hashes;
- const base::ListValue* hash_list = NULL;
- if (site_dict->GetList(kHostnameHashesKey, &hash_list)) {
- found = true;
- for (base::ListValue::const_iterator hash_list_it = hash_list->begin();
- hash_list_it != hash_list->end(); ++hash_list_it) {
- std::string hash;
- if (!(*hash_list_it)->GetAsString(&hash)) {
- LOG(ERROR) << "Invalid whitelist entry";
- continue;
- }
-
- hashes->push_back(hash);
- }
- }
-
- if (found)
- return;
-
- // Fall back to using a whitelist based on the URL.
- std::string url_str;
- if (!site_dict->GetString(kUrlKey, &url_str)) {
- LOG(ERROR) << "Whitelist is invalid";
- return;
- }
-
- GURL url(url_str);
- if (!url.is_valid()) {
- LOG(ERROR) << "URL " << url_str << " is invalid";
- return;
- }
-
- patterns->push_back(url.host());
-}
-
-} // namespace
-
-ManagedModeSiteList::Site::Site(const base::string16& name,
- int category_id)
- : name(name),
- category_id(category_id) {}
-
-ManagedModeSiteList::Site::~Site() {}
-
-ManagedModeSiteList::ManagedModeSiteList(
- const std::string& extension_id,
- const base::FilePath& path)
- : extension_id_(extension_id),
- path_(path) {
-}
-
-ManagedModeSiteList::~ManagedModeSiteList() {
-}
-
-ManagedModeSiteList* ManagedModeSiteList::Clone() {
- return new ManagedModeSiteList(extension_id_, path_);
-}
-
-// static
-void ManagedModeSiteList::GetCategoryNames(
- std::vector<base::string16>* categories) {
- // TODO(bauerb): Collect custom categories from extensions.
- for (size_t i = 0; i < arraysize(g_categories); ++i) {
- categories->push_back(base::ASCIIToUTF16(g_categories[i].name));
- }
-}
-
-void ManagedModeSiteList::GetSites(std::vector<Site>* sites) {
- if (!LazyLoad())
- return;
-
- for (base::ListValue::iterator entry_it = sites_->begin();
- entry_it != sites_->end(); ++entry_it) {
- base::DictionaryValue* entry = NULL;
- if (!(*entry_it)->GetAsDictionary(&entry)) {
- LOG(ERROR) << "Entry is invalid";
- continue;
- }
-
- base::string16 name;
- entry->GetString(kNameKey, &name);
-
- // TODO(bauerb): We need to distinguish between "no category assigned" and
- // "not on any site list".
- int category_id = 0;
- const base::ListValue* categories = NULL;
- if (entry->GetList(kCategoriesKey, &categories)) {
- for (base::ListValue::const_iterator it = categories->begin();
- it != categories->end(); ++it) {
- std::string category;
- if (!(*it)->GetAsString(&category)) {
- LOG(ERROR) << "Invalid category";
- continue;
- }
- category_id = GetCategoryId(category);
- break;
- }
- }
- sites->push_back(Site(name, category_id));
- AddWhitelistEntries(entry, &sites->back());
- }
-}
-
-bool ManagedModeSiteList::LazyLoad() {
- if (sites_.get())
- return true;
-
- JSONFileValueSerializer serializer(path_);
- std::string error;
- scoped_ptr<base::Value> value(serializer.Deserialize(NULL, &error));
- if (!value.get()) {
- LOG(ERROR) << "Couldn't load site list " << path_.value() << ": "
- << error;
- return false;
- }
-
- base::DictionaryValue* dict = NULL;
- if (!value->GetAsDictionary(&dict)) {
- LOG(ERROR) << "Site list " << path_.value() << " is invalid";
- return false;
- }
-
- int version = 0;
- if (!dict->GetInteger(kSitelistFormatVersionKey, &version)) {
- LOG(ERROR) << "Site list " << path_.value() << " has invalid version";
- return false;
- }
-
- if (version > kSitelistFormatVersion) {
- LOG(ERROR) << "Site list " << path_.value() << " has a too new format";
- return false;
- }
-
- base::ListValue* sites = NULL;
- if (dict->GetList(kSitesKey, &sites))
- sites_.reset(sites->DeepCopy());
-
- base::DictionaryValue* categories = NULL;
- if (dict->GetDictionary(kCategoriesKey, &categories))
- categories_.reset(categories->DeepCopy());
-
- return true;
-}
-
-void ManagedModeSiteList::CopyThumbnailUrl(const base::DictionaryValue* source,
- base::DictionaryValue* dest) {
- if (!source->HasKey(kThumbnailKey))
- return;
-
- std::string thumbnail;
- if (!source->GetString(kThumbnailKey, &thumbnail)) {
- LOG(ERROR) << "Invalid thumbnail";
- return;
- }
-
- GURL base_url =
- extensions::Extension::GetBaseURLFromExtensionId(extension_id_);
- GURL thumbnail_url = base_url.Resolve(thumbnail);
- if (!thumbnail_url.is_valid()) {
- LOG(ERROR) << "Invalid thumbnail";
- return;
- }
-
- dest->SetString(kThumbnailUrlKey, thumbnail_url.spec());
-}
« no previous file with comments | « chrome/browser/managed_mode/managed_mode_site_list.h ('k') | chrome/browser/managed_mode/managed_mode_url_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698