summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions
diff options
context:
space:
mode:
authordsh@google.com <dsh@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-03 20:21:01 +0000
committerdsh@google.com <dsh@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-03 20:21:01 +0000
commit32c147158f76e19aa22efa2a7b14d3f0e1e23a02 (patch)
treea84b94bc6c2e4e52d009db317ed49a343658634c /chrome/browser/extensions
parent600a41fb05efe99eb2890e884a7af0541456c365 (diff)
downloadchromium_src-32c147158f76e19aa22efa2a7b14d3f0e1e23a02.zip
chromium_src-32c147158f76e19aa22efa2a7b14d3f0e1e23a02.tar.gz
chromium_src-32c147158f76e19aa22efa2a7b14d3f0e1e23a02.tar.bz2
Port DictionaryValue to use string16 instead of wstring.
Review URL: http://codereview.chromium.org/31014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10818 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions')
-rw-r--r--chrome/browser/extensions/extension.cc34
-rw-r--r--chrome/browser/extensions/extension_unittest.cc61
-rw-r--r--chrome/browser/extensions/extensions_service.cc8
3 files changed, 55 insertions, 48 deletions
diff --git a/chrome/browser/extensions/extension.cc b/chrome/browser/extensions/extension.cc
index 918268f..1db97ceb 100644
--- a/chrome/browser/extensions/extension.cc
+++ b/chrome/browser/extensions/extension.cc
@@ -163,14 +163,14 @@ bool Extension::InitFromValue(const DictionaryValue& source,
std::string* error) {
// Check format version.
int format_version = 0;
- if (!source.GetInteger(kFormatVersionKey, &format_version) ||
+ if (!source.GetInteger(WideToUTF16Hack(kFormatVersionKey), &format_version) ||
static_cast<uint32>(format_version) != kExpectedFormatVersion) {
*error = kInvalidFormatVersionError;
return false;
}
// Initialize id.
- if (!source.GetString(kIdKey, &id_)) {
+ if (!source.GetString(WideToUTF16Hack(kIdKey), &id_)) {
*error = kInvalidIdError;
return false;
}
@@ -193,7 +193,7 @@ bool Extension::InitFromValue(const DictionaryValue& source,
// Initialize version.
std::string version_str;
- if (!source.GetString(kVersionKey, &version_str)) {
+ if (!source.GetString(WideToUTF16Hack(kVersionKey), &version_str)) {
*error = kInvalidVersionError;
return false;
}
@@ -204,14 +204,14 @@ bool Extension::InitFromValue(const DictionaryValue& source,
}
// Initialize name.
- if (!source.GetString(kNameKey, &name_)) {
+ if (!source.GetString(WideToUTF16Hack(kNameKey), &name_)) {
*error = kInvalidNameError;
return false;
}
// Initialize description (optional).
- if (source.HasKey(kDescriptionKey)) {
- if (!source.GetString(kDescriptionKey, &description_)) {
+ if (source.HasKey(WideToUTF16Hack(kDescriptionKey))) {
+ if (!source.GetString(WideToUTF16Hack(kDescriptionKey), &description_)) {
*error = kInvalidDescriptionError;
return false;
}
@@ -220,17 +220,17 @@ bool Extension::InitFromValue(const DictionaryValue& source,
// Initialize zip hash (only present in zip)
// There's no need to verify it at this point. If it's in a bogus format
// it won't pass the hash verify step.
- if (source.HasKey(kZipHashKey)) {
- if (!source.GetString(kZipHashKey, &zip_hash_)) {
+ if (source.HasKey(WideToUTF16Hack(kZipHashKey))) {
+ if (!source.GetString(WideToUTF16Hack(kZipHashKey), &zip_hash_)) {
*error = kInvalidZipHashError;
return false;
}
}
// Initialize plugins dir (optional).
- if (source.HasKey(kPluginsDirKey)) {
+ if (source.HasKey(WideToUTF16Hack(kPluginsDirKey))) {
std::string plugins_dir;
- if (!source.GetString(kPluginsDirKey, &plugins_dir)) {
+ if (!source.GetString(WideToUTF16Hack(kPluginsDirKey), &plugins_dir)) {
*error = kInvalidPluginsDirError;
return false;
}
@@ -238,9 +238,9 @@ bool Extension::InitFromValue(const DictionaryValue& source,
}
// Initialize content scripts (optional).
- if (source.HasKey(kContentScriptsKey)) {
+ if (source.HasKey(WideToUTF16Hack(kContentScriptsKey))) {
ListValue* list_value;
- if (!source.GetList(kContentScriptsKey, &list_value)) {
+ if (!source.GetList(WideToUTF16Hack(kContentScriptsKey), &list_value)) {
*error = kInvalidContentScriptsListError;
return false;
}
@@ -255,12 +255,12 @@ bool Extension::InitFromValue(const DictionaryValue& source,
ListValue* matches;
ListValue* js;
- if (!content_script->GetList(kMatchesKey, &matches)) {
+ if (!content_script->GetList(WideToUTF16Hack(kMatchesKey), &matches)) {
*error = FormatErrorMessage(kInvalidMatchesError, IntToString(i));
return false;
}
- if (!content_script->GetList(kJsKey, &js)) {
+ if (!content_script->GetList(WideToUTF16Hack(kJsKey), &js)) {
*error = FormatErrorMessage(kInvalidJsListError, IntToString(i));
return false;
}
@@ -277,9 +277,10 @@ bool Extension::InitFromValue(const DictionaryValue& source,
}
UserScript script;
- if (content_script->HasKey(kRunAtKey)) {
+ if (content_script->HasKey(WideToUTF16Hack(kRunAtKey))) {
std::string run_location;
- if (!content_script->GetString(kRunAtKey, &run_location)) {
+ if (!content_script->GetString(WideToUTF16Hack(kRunAtKey),
+ &run_location)) {
*error = FormatErrorMessage(kInvalidRunAtError, IntToString(i));
return false;
}
@@ -328,4 +329,3 @@ bool Extension::InitFromValue(const DictionaryValue& source,
return true;
}
-
diff --git a/chrome/browser/extensions/extension_unittest.cc b/chrome/browser/extensions/extension_unittest.cc
index aa8d791..259c8db 100644
--- a/chrome/browser/extensions/extension_unittest.cc
+++ b/chrome/browser/extensions/extension_unittest.cc
@@ -43,64 +43,65 @@ TEST(ExtensionTest, InitFromValueInvalid) {
// Test missing and invalid format versions
input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy()));
- input_value->Remove(Extension::kFormatVersionKey, NULL);
+ input_value->Remove(WideToUTF16Hack(Extension::kFormatVersionKey), NULL);
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_EQ(Extension::kInvalidFormatVersionError, error);
- input_value->SetString(Extension::kFormatVersionKey, "foo");
+ input_value->SetString(WideToUTF16Hack(Extension::kFormatVersionKey), "foo");
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_EQ(Extension::kInvalidFormatVersionError, error);
- input_value->SetInteger(Extension::kFormatVersionKey, 2);
+ input_value->SetInteger(WideToUTF16Hack(Extension::kFormatVersionKey), 2);
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_EQ(Extension::kInvalidFormatVersionError, error);
// Test missing and invalid ids
input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy()));
- input_value->Remove(Extension::kIdKey, NULL);
+ input_value->Remove(WideToUTF16Hack(Extension::kIdKey), NULL);
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_EQ(Extension::kInvalidIdError, error);
- input_value->SetInteger(Extension::kIdKey, 42);
+ input_value->SetInteger(WideToUTF16Hack(Extension::kIdKey), 42);
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_EQ(Extension::kInvalidIdError, error);
// Test missing and invalid versions
input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy()));
- input_value->Remove(Extension::kVersionKey, NULL);
+ input_value->Remove(WideToUTF16Hack(Extension::kVersionKey), NULL);
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_EQ(Extension::kInvalidVersionError, error);
- input_value->SetInteger(Extension::kVersionKey, 42);
+ input_value->SetInteger(WideToUTF16Hack(Extension::kVersionKey), 42);
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_EQ(Extension::kInvalidVersionError, error);
// Test missing and invalid names
input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy()));
- input_value->Remove(Extension::kNameKey, NULL);
+ input_value->Remove(WideToUTF16Hack(Extension::kNameKey), NULL);
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_EQ(Extension::kInvalidNameError, error);
- input_value->SetInteger(Extension::kNameKey, 42);
+ input_value->SetInteger(WideToUTF16Hack(Extension::kNameKey), 42);
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_EQ(Extension::kInvalidNameError, error);
// Test invalid description
input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy()));
- input_value->SetInteger(Extension::kDescriptionKey, 42);
+ input_value->SetInteger(WideToUTF16Hack(Extension::kDescriptionKey), 42);
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_EQ(Extension::kInvalidDescriptionError, error);
// Test invalid user scripts list
input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy()));
- input_value->SetInteger(Extension::kContentScriptsKey, 42);
+ input_value->SetInteger(WideToUTF16Hack(Extension::kContentScriptsKey), 42);
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_EQ(Extension::kInvalidContentScriptsListError, error);
// Test invalid user script item
input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy()));
ListValue* content_scripts = NULL;
- input_value->GetList(Extension::kContentScriptsKey, &content_scripts);
+ input_value->GetList(WideToUTF16Hack(Extension::kContentScriptsKey),
+ &content_scripts);
ASSERT_FALSE(NULL == content_scripts);
content_scripts->Set(0, Value::CreateIntegerValue(42));
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
@@ -108,19 +109,21 @@ TEST(ExtensionTest, InitFromValueInvalid) {
// Test missing and invalid matches array
input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy()));
- input_value->GetList(Extension::kContentScriptsKey, &content_scripts);
+ input_value->GetList(WideToUTF16Hack(Extension::kContentScriptsKey),
+ &content_scripts);
DictionaryValue* user_script = NULL;
content_scripts->GetDictionary(0, &user_script);
- user_script->Remove(Extension::kMatchesKey, NULL);
+ user_script->Remove(WideToUTF16Hack(Extension::kMatchesKey), NULL);
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_TRUE(MatchPattern(error, Extension::kInvalidMatchesError));
- user_script->Set(Extension::kMatchesKey, Value::CreateIntegerValue(42));
+ user_script->Set(WideToUTF16Hack(Extension::kMatchesKey),
+ Value::CreateIntegerValue(42));
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_TRUE(MatchPattern(error, Extension::kInvalidMatchesError));
ListValue* matches = new ListValue;
- user_script->Set(Extension::kMatchesKey, matches);
+ user_script->Set(WideToUTF16Hack(Extension::kMatchesKey), matches);
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_TRUE(MatchPattern(error, Extension::kInvalidMatchCountError));
@@ -131,18 +134,20 @@ TEST(ExtensionTest, InitFromValueInvalid) {
// Test missing and invalid files array
input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy()));
- input_value->GetList(Extension::kContentScriptsKey, &content_scripts);
+ input_value->GetList(WideToUTF16Hack(Extension::kContentScriptsKey),
+ &content_scripts);
content_scripts->GetDictionary(0, &user_script);
- user_script->Remove(Extension::kJsKey, NULL);
+ user_script->Remove(WideToUTF16Hack(Extension::kJsKey), NULL);
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_TRUE(MatchPattern(error, Extension::kInvalidJsListError));
- user_script->Set(Extension::kJsKey, Value::CreateIntegerValue(42));
+ user_script->Set(WideToUTF16Hack(Extension::kJsKey),
+ Value::CreateIntegerValue(42));
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_TRUE(MatchPattern(error, Extension::kInvalidJsListError));
ListValue* files = new ListValue;
- user_script->Set(Extension::kJsKey, files);
+ user_script->Set(WideToUTF16Hack(Extension::kJsKey), files);
EXPECT_FALSE(extension.InitFromValue(*input_value, &error));
EXPECT_TRUE(MatchPattern(error, Extension::kInvalidJsCountError));
@@ -169,11 +174,11 @@ TEST(ExtensionTest, InitFromValueValid) {
DictionaryValue input_value;
// Test minimal extension
- input_value.SetInteger(Extension::kFormatVersionKey, 1);
- input_value.SetString(Extension::kIdKey,
+ input_value.SetInteger(WideToUTF16Hack(Extension::kFormatVersionKey), 1);
+ input_value.SetString(WideToUTF16Hack(Extension::kIdKey),
"00123456789ABCDEF0123456789ABCDEF0123456");
- input_value.SetString(Extension::kVersionKey, "1.0.0.0");
- input_value.SetString(Extension::kNameKey, "my extension");
+ input_value.SetString(WideToUTF16Hack(Extension::kVersionKey), "1.0.0.0");
+ input_value.SetString(WideToUTF16Hack(Extension::kNameKey), "my extension");
EXPECT_TRUE(extension.InitFromValue(input_value, &error));
EXPECT_EQ("", error);
@@ -193,11 +198,11 @@ TEST(ExtensionTest, GetResourceURLAndPath) {
#endif
Extension extension(path);
DictionaryValue input_value;
- input_value.SetInteger(Extension::kFormatVersionKey, 1);
- input_value.SetString(Extension::kIdKey,
+ input_value.SetInteger(WideToUTF16Hack(Extension::kFormatVersionKey), 1);
+ input_value.SetString(WideToUTF16Hack(Extension::kIdKey),
"00123456789ABCDEF0123456789ABCDEF0123456");
- input_value.SetString(Extension::kVersionKey, "1.0.0.0");
- input_value.SetString(Extension::kNameKey, "my extension");
+ input_value.SetString(WideToUTF16Hack(Extension::kVersionKey), "1.0.0.0");
+ input_value.SetString(WideToUTF16Hack(Extension::kNameKey), "my extension");
EXPECT_TRUE(extension.InitFromValue(input_value, NULL));
EXPECT_EQ(extension.url().spec() + "bar/baz.js",
diff --git a/chrome/browser/extensions/extensions_service.cc b/chrome/browser/extensions/extensions_service.cc
index 3271920..be6f068 100644
--- a/chrome/browser/extensions/extensions_service.cc
+++ b/chrome/browser/extensions/extensions_service.cc
@@ -402,14 +402,15 @@ DictionaryValue* ExtensionsServiceBackend::ReadManifest() {
// again later, checking it here allows us to skip some potentially expensive
// work.
std::string id;
- if (!manifest->GetString(Extension::kIdKey, &id)) {
+ if (!manifest->GetString(WideToUTF16Hack(Extension::kIdKey), &id)) {
ReportExtensionInstallError("missing id key");
return NULL;
}
FilePath dest_dir = install_directory_.AppendASCII(id.c_str());
if (file_util::PathExists(dest_dir)) {
std::string version;
- if (!manifest->GetString(Extension::kVersionKey, &version)) {
+ if (!manifest->GetString(WideToUTF16Hack(Extension::kVersionKey),
+ &version)) {
ReportExtensionInstallError("missing version key");
return NULL;
}
@@ -421,7 +422,8 @@ DictionaryValue* ExtensionsServiceBackend::ReadManifest() {
}
std::string zip_hash;
- if (!manifest->GetString(Extension::kZipHashKey, &zip_hash)) {
+ if (!manifest->GetString(WideToUTF16Hack(Extension::kZipHashKey),
+ &zip_hash)) {
ReportExtensionInstallError("missing zip_hash key");
return NULL;
}