| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/component_updater/component_unpacker.h" | 5 #include "chrome/browser/component_updater/component_unpacker.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 scoped_ptr<SecureHash> sha256(SecureHash::Create(SecureHash::SHA256)); | 129 scoped_ptr<SecureHash> sha256(SecureHash::Create(SecureHash::SHA256)); |
| 130 sha256->Update(&(validator.public_key()[0]), validator.public_key().size()); | 130 sha256->Update(&(validator.public_key()[0]), validator.public_key().size()); |
| 131 sha256->Finish(hash, arraysize(hash)); | 131 sha256->Finish(hash, arraysize(hash)); |
| 132 | 132 |
| 133 if (!std::equal(pk_hash.begin(), pk_hash.end(), hash)) { | 133 if (!std::equal(pk_hash.begin(), pk_hash.end(), hash)) { |
| 134 error_ = kInvalidId; | 134 error_ = kInvalidId; |
| 135 return; | 135 return; |
| 136 } | 136 } |
| 137 // We want the temporary directory to be unique and yet predictable, so | 137 // We want the temporary directory to be unique and yet predictable, so |
| 138 // we can easily find the package in a end user machine. | 138 // we can easily find the package in a end user machine. |
| 139 std::string dir(StringPrintf("CRX_%s", base::HexEncode(hash, 6).c_str())); | 139 std::string dir( |
| 140 base::StringPrintf("CRX_%s", base::HexEncode(hash, 6).c_str())); |
| 140 unpack_path_ = path.DirName().AppendASCII(dir.c_str()); | 141 unpack_path_ = path.DirName().AppendASCII(dir.c_str()); |
| 141 if (file_util::DirectoryExists(unpack_path_)) { | 142 if (file_util::DirectoryExists(unpack_path_)) { |
| 142 if (!file_util::Delete(unpack_path_, true)) { | 143 if (!file_util::Delete(unpack_path_, true)) { |
| 143 unpack_path_.clear(); | 144 unpack_path_.clear(); |
| 144 error_ = kUzipPathError; | 145 error_ = kUzipPathError; |
| 145 return; | 146 return; |
| 146 } | 147 } |
| 147 } | 148 } |
| 148 if (!file_util::CreateDirectory(unpack_path_)) { | 149 if (!file_util::CreateDirectory(unpack_path_)) { |
| 149 unpack_path_.clear(); | 150 unpack_path_.clear(); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 165 } | 166 } |
| 166 // Installation successful. The directory is not our concern now. | 167 // Installation successful. The directory is not our concern now. |
| 167 unpack_path_.clear(); | 168 unpack_path_.clear(); |
| 168 } | 169 } |
| 169 | 170 |
| 170 ComponentUnpacker::~ComponentUnpacker() { | 171 ComponentUnpacker::~ComponentUnpacker() { |
| 171 if (!unpack_path_.empty()) { | 172 if (!unpack_path_.empty()) { |
| 172 file_util::Delete(unpack_path_, true); | 173 file_util::Delete(unpack_path_, true); |
| 173 } | 174 } |
| 174 } | 175 } |
| OLD | NEW |