| 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" |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 script_name = script.name_space() + "/" + script.name(); | 66 script_name = script.name_space() + "/" + script.name(); |
| 67 else | 67 else |
| 68 script_name = original_url.spec(); | 68 script_name = original_url.spec(); |
| 69 | 69 |
| 70 // Create the public key. | 70 // Create the public key. |
| 71 // User scripts are not signed, but the public key for an extension doubles as | 71 // User scripts are not signed, but the public key for an extension doubles as |
| 72 // its unique identity, and we need one of those. A user script's unique | 72 // its unique identity, and we need one of those. A user script's unique |
| 73 // identity is its namespace+name, so we hash that to create a public key. | 73 // identity is its namespace+name, so we hash that to create a public key. |
| 74 // There will be no corresponding private key, which means user scripts cannot | 74 // There will be no corresponding private key, which means user scripts cannot |
| 75 // be auto-updated, or claimed in the gallery. | 75 // be auto-updated, or claimed in the gallery. |
| 76 char raw[crypto::SHA256_LENGTH] = {0}; | 76 char raw[crypto::kSHA256Length] = {0}; |
| 77 std::string key; | 77 std::string key; |
| 78 crypto::SHA256HashString(script_name, raw, crypto::SHA256_LENGTH); | 78 crypto::SHA256HashString(script_name, raw, crypto::kSHA256Length); |
| 79 base::Base64Encode(std::string(raw, crypto::SHA256_LENGTH), &key); | 79 base::Base64Encode(std::string(raw, crypto::kSHA256Length), &key); |
| 80 | 80 |
| 81 // The script may not have a name field, but we need one for an extension. If | 81 // The script may not have a name field, but we need one for an extension. If |
| 82 // it is missing, use the filename of the original URL. | 82 // it is missing, use the filename of the original URL. |
| 83 if (!script.name().empty()) | 83 if (!script.name().empty()) |
| 84 root->SetString(keys::kName, script.name()); | 84 root->SetString(keys::kName, script.name()); |
| 85 else | 85 else |
| 86 root->SetString(keys::kName, original_url.ExtractFileName()); | 86 root->SetString(keys::kName, original_url.ExtractFileName()); |
| 87 | 87 |
| 88 // Not all scripts have a version, but we need one. Default to 1.0 if it is | 88 // Not all scripts have a version, but we need one. Default to 1.0 if it is |
| 89 // missing. | 89 // missing. |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 Extension::NO_FLAGS, | 162 Extension::NO_FLAGS, |
| 163 error); | 163 error); |
| 164 if (!extension) { | 164 if (!extension) { |
| 165 NOTREACHED() << "Could not init extension " << *error; | 165 NOTREACHED() << "Could not init extension " << *error; |
| 166 return NULL; | 166 return NULL; |
| 167 } | 167 } |
| 168 | 168 |
| 169 temp_dir.Take(); // The caller takes ownership of the directory. | 169 temp_dir.Take(); // The caller takes ownership of the directory. |
| 170 return extension; | 170 return extension; |
| 171 } | 171 } |
| OLD | NEW |