OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/common/extensions/extension.h" | 5 #include "chrome/common/extensions/extension.h" |
6 | 6 |
7 #include "app/resource_bundle.h" | 7 #include "app/resource_bundle.h" |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
(...skipping 979 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
990 std::string default_locale; | 990 std::string default_locale; |
991 if (!source.GetString(keys::kDefaultLocale, &default_locale)) { | 991 if (!source.GetString(keys::kDefaultLocale, &default_locale)) { |
992 *error = errors::kInvalidDefaultLocale; | 992 *error = errors::kInvalidDefaultLocale; |
993 return false; | 993 return false; |
994 } | 994 } |
995 // Normalize underscores to hyphens. | 995 // Normalize underscores to hyphens. |
996 std::replace(default_locale.begin(), default_locale.end(), '_', '-'); | 996 std::replace(default_locale.begin(), default_locale.end(), '_', '-'); |
997 set_default_locale(default_locale); | 997 set_default_locale(default_locale); |
998 } | 998 } |
999 | 999 |
| 1000 // Chrome URL overrides (optional) |
| 1001 if (source.HasKey(keys::kChromeURLOverrides)) { |
| 1002 DictionaryValue* overrides; |
| 1003 if (!source.GetDictionary(keys::kChromeURLOverrides, &overrides)) { |
| 1004 *error = errors::kInvalidChromeURLOverrides; |
| 1005 return false; |
| 1006 } |
| 1007 // Validate that the overrides are all strings |
| 1008 DictionaryValue::key_iterator iter = overrides->begin_keys(); |
| 1009 while (iter != overrides->end_keys()) { |
| 1010 // For now, only allow the new tab page. Others will work when we remove |
| 1011 // this check, but let's keep it simple for now. |
| 1012 // TODO(erikkay) enable other pages as well |
| 1013 if (WideToUTF8(*iter) != chrome::kChromeUINewTabHost) { |
| 1014 *error = errors::kInvalidChromeURLOverrides; |
| 1015 return false; |
| 1016 } |
| 1017 std::string val; |
| 1018 if (!overrides->GetString(*iter, &val)) { |
| 1019 *error = errors::kInvalidChromeURLOverrides; |
| 1020 return false; |
| 1021 } |
| 1022 // Replace the entry with a fully qualified chrome-extension:// URL. |
| 1023 GURL url = GetResourceURL(val); |
| 1024 overrides->SetString(*iter, url.spec()); |
| 1025 ++iter; |
| 1026 } |
| 1027 chrome_url_overrides_.reset( |
| 1028 static_cast<DictionaryValue*>(overrides->DeepCopy())); |
| 1029 } |
| 1030 |
1000 return true; | 1031 return true; |
1001 } | 1032 } |
1002 | 1033 |
1003 std::set<FilePath> Extension::GetBrowserImages() { | 1034 std::set<FilePath> Extension::GetBrowserImages() { |
1004 std::set<FilePath> image_paths; | 1035 std::set<FilePath> image_paths; |
1005 | 1036 |
1006 // extension icons | 1037 // extension icons |
1007 for (std::map<int, std::string>::iterator iter = icons_.begin(); | 1038 for (std::map<int, std::string>::iterator iter = icons_.begin(); |
1008 iter != icons_.end(); ++iter) { | 1039 iter != icons_.end(); ++iter) { |
1009 image_paths.insert(FilePath::FromWStringHack(UTF8ToWide(iter->second))); | 1040 image_paths.insert(FilePath::FromWStringHack(UTF8ToWide(iter->second))); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1085 UserScript::PatternList::const_iterator pattern = | 1116 UserScript::PatternList::const_iterator pattern = |
1086 content_script->url_patterns().begin(); | 1117 content_script->url_patterns().begin(); |
1087 for (; pattern != content_script->url_patterns().end(); ++pattern) { | 1118 for (; pattern != content_script->url_patterns().end(); ++pattern) { |
1088 if (pattern->match_subdomains() && pattern->host().empty()) | 1119 if (pattern->match_subdomains() && pattern->host().empty()) |
1089 return true; | 1120 return true; |
1090 } | 1121 } |
1091 } | 1122 } |
1092 | 1123 |
1093 return false; | 1124 return false; |
1094 } | 1125 } |
OLD | NEW |