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/browser/extensions/extension_updater.h" | 5 #include "chrome/browser/extensions/extension_updater.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 // If there are any pending downloads left, start one. | 202 // If there are any pending downloads left, start one. |
203 if (extensions_pending_.size() > 0) { | 203 if (extensions_pending_.size() > 0) { |
204 ExtensionFetch next = extensions_pending_.front(); | 204 ExtensionFetch next = extensions_pending_.front(); |
205 extensions_pending_.pop_front(); | 205 extensions_pending_.pop_front(); |
206 FetchUpdatedExtension(next.id, next.url); | 206 FetchUpdatedExtension(next.id, next.url); |
207 } | 207 } |
208 } | 208 } |
209 | 209 |
210 void ExtensionUpdater::OnCRXFileWritten(const std::string& id, | 210 void ExtensionUpdater::OnCRXFileWritten(const std::string& id, |
211 const FilePath& path) { | 211 const FilePath& path) { |
212 // TODO(asargent) - Instead of calling InstallExtension here, we should have | 212 service_->UpdateExtension(id, path); |
213 // an UpdateExtension method in ExtensionsService and rely on it to check | |
214 // that the extension is still installed, and still an older version than | |
215 // what we're handing it. | |
216 // (http://crbug.com/12764). | |
217 ExtensionInstallCallback* callback = | |
218 NewCallback(this, &ExtensionUpdater::OnExtensionInstallFinished); | |
219 service_->UpdateExtension(id, path, false, callback); | |
220 } | 213 } |
221 | 214 |
222 void ExtensionUpdater::OnExtensionInstallFinished(const FilePath& path, | 215 void ExtensionUpdater::OnExtensionInstallFinished(const FilePath& path, |
223 Extension* extension) { | 216 Extension* extension) { |
224 // Have the file_handler_ delete the temp file on the file I/O thread. | 217 // Have the file_handler_ delete the temp file on the file I/O thread. |
225 file_io_loop_->PostTask(FROM_HERE, NewRunnableMethod( | 218 file_io_loop_->PostTask(FROM_HERE, NewRunnableMethod( |
226 file_handler_.get(), &ExtensionUpdaterFileHandler::DeleteFile, path)); | 219 file_handler_.get(), &ExtensionUpdaterFileHandler::DeleteFile, path)); |
227 } | 220 } |
228 | 221 |
229 | 222 |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
578 } | 571 } |
579 } else { | 572 } else { |
580 extension_fetcher_.reset( | 573 extension_fetcher_.reset( |
581 URLFetcher::Create(kExtensionFetcherId, url, URLFetcher::GET, this)); | 574 URLFetcher::Create(kExtensionFetcherId, url, URLFetcher::GET, this)); |
582 extension_fetcher_->set_request_context( | 575 extension_fetcher_->set_request_context( |
583 Profile::GetDefaultRequestContext()); | 576 Profile::GetDefaultRequestContext()); |
584 extension_fetcher_->Start(); | 577 extension_fetcher_->Start(); |
585 current_extension_fetch_ = ExtensionFetch(id, url); | 578 current_extension_fetch_ = ExtensionFetch(id, url); |
586 } | 579 } |
587 } | 580 } |
OLD | NEW |