OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/browser/extensions/convert_user_script.h" | 5 #include "chrome/browser/extensions/convert_user_script.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/base64.h" | 10 #include "base/base64.h" |
11 #include "base/file_path.h" | 11 #include "base/file_path.h" |
12 #include "base/file_util.h" | 12 #include "base/file_util.h" |
13 #include "base/memory/scoped_temp_dir.h" | 13 #include "base/memory/scoped_temp_dir.h" |
14 #include "base/path_service.h" | 14 #include "base/path_service.h" |
15 #include "base/sha2.h" | |
16 #include "base/string_util.h" | 15 #include "base/string_util.h" |
| 16 #include "crypto/sha2.h" |
17 #include "chrome/browser/extensions/user_script_master.h" | 17 #include "chrome/browser/extensions/user_script_master.h" |
18 #include "chrome/common/chrome_paths.h" | 18 #include "chrome/common/chrome_paths.h" |
19 #include "chrome/common/extensions/extension.h" | 19 #include "chrome/common/extensions/extension.h" |
20 #include "chrome/common/extensions/extension_constants.h" | 20 #include "chrome/common/extensions/extension_constants.h" |
21 #include "chrome/common/extensions/extension_file_util.h" | 21 #include "chrome/common/extensions/extension_file_util.h" |
22 #include "chrome/common/extensions/user_script.h" | 22 #include "chrome/common/extensions/user_script.h" |
23 #include "chrome/common/json_value_serializer.h" | 23 #include "chrome/common/json_value_serializer.h" |
24 #include "googleurl/src/gurl.h" | 24 #include "googleurl/src/gurl.h" |
25 | 25 |
26 namespace keys = extension_manifest_keys; | 26 namespace keys = extension_manifest_keys; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 script_name = script.name_space() + "/" + script.name(); | 65 script_name = script.name_space() + "/" + script.name(); |
66 else | 66 else |
67 script_name = original_url.spec(); | 67 script_name = original_url.spec(); |
68 | 68 |
69 // Create the public key. | 69 // Create the public key. |
70 // User scripts are not signed, but the public key for an extension doubles as | 70 // User scripts are not signed, but the public key for an extension doubles as |
71 // its unique identity, and we need one of those. A user script's unique | 71 // its unique identity, and we need one of those. A user script's unique |
72 // identity is its namespace+name, so we hash that to create a public key. | 72 // identity is its namespace+name, so we hash that to create a public key. |
73 // There will be no corresponding private key, which means user scripts cannot | 73 // There will be no corresponding private key, which means user scripts cannot |
74 // be auto-updated, or claimed in the gallery. | 74 // be auto-updated, or claimed in the gallery. |
75 char raw[base::SHA256_LENGTH] = {0}; | 75 char raw[crypto::SHA256_LENGTH] = {0}; |
76 std::string key; | 76 std::string key; |
77 base::SHA256HashString(script_name, raw, base::SHA256_LENGTH); | 77 crypto::SHA256HashString(script_name, raw, crypto::SHA256_LENGTH); |
78 base::Base64Encode(std::string(raw, base::SHA256_LENGTH), &key); | 78 base::Base64Encode(std::string(raw, crypto::SHA256_LENGTH), &key); |
79 | 79 |
80 // The script may not have a name field, but we need one for an extension. If | 80 // The script may not have a name field, but we need one for an extension. If |
81 // it is missing, use the filename of the original URL. | 81 // it is missing, use the filename of the original URL. |
82 if (!script.name().empty()) | 82 if (!script.name().empty()) |
83 root->SetString(keys::kName, script.name()); | 83 root->SetString(keys::kName, script.name()); |
84 else | 84 else |
85 root->SetString(keys::kName, original_url.ExtractFileName()); | 85 root->SetString(keys::kName, original_url.ExtractFileName()); |
86 | 86 |
87 // Not all scripts have a version, but we need one. Default to 1.0 if it is | 87 // Not all scripts have a version, but we need one. Default to 1.0 if it is |
88 // missing. | 88 // missing. |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 Extension::NO_FLAGS, | 153 Extension::NO_FLAGS, |
154 error); | 154 error); |
155 if (!extension) { | 155 if (!extension) { |
156 NOTREACHED() << "Could not init extension " << *error; | 156 NOTREACHED() << "Could not init extension " << *error; |
157 return NULL; | 157 return NULL; |
158 } | 158 } |
159 | 159 |
160 temp_dir.Take(); // The caller takes ownership of the directory. | 160 temp_dir.Take(); // The caller takes ownership of the directory. |
161 return extension; | 161 return extension; |
162 } | 162 } |
OLD | NEW |