| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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_service.h" | 5 #include "chrome/browser/extensions/extension_service.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <iterator> | 10 #include <iterator> |
| (...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 | 512 |
| 513 const extensions::PendingExtensionInfo* pending_extension_info = | 513 const extensions::PendingExtensionInfo* pending_extension_info = |
| 514 pending_extension_manager()->GetById(id); | 514 pending_extension_manager()->GetById(id); |
| 515 | 515 |
| 516 const Extension* extension = GetInstalledExtension(id); | 516 const Extension* extension = GetInstalledExtension(id); |
| 517 if (!pending_extension_info && !extension) { | 517 if (!pending_extension_info && !extension) { |
| 518 LOG(WARNING) << "Will not update extension " << id | 518 LOG(WARNING) << "Will not update extension " << id |
| 519 << " because it is not installed or pending"; | 519 << " because it is not installed or pending"; |
| 520 // Delete extension_path since we're not creating a CrxInstaller | 520 // Delete extension_path since we're not creating a CrxInstaller |
| 521 // that would do it for us. | 521 // that would do it for us. |
| 522 if (!GetFileTaskRunner()->PostTask( | 522 if (file_ownership_passed && |
| 523 !GetFileTaskRunner()->PostTask( |
| 523 FROM_HERE, | 524 FROM_HERE, |
| 524 base::Bind(&extensions::file_util::DeleteFile, file.path, false))) | 525 base::Bind(&extensions::file_util::DeleteFile, file.path, false))) |
| 525 NOTREACHED(); | 526 NOTREACHED(); |
| 526 | 527 |
| 527 return false; | 528 return false; |
| 528 } | 529 } |
| 529 | 530 |
| 530 scoped_refptr<CrxInstaller> installer(CrxInstaller::CreateSilent(this)); | 531 scoped_refptr<CrxInstaller> installer(CrxInstaller::CreateSilent(this)); |
| 531 installer->set_expected_id(id); | 532 installer->set_expected_id(id); |
| 532 installer->set_expected_hash(file.expected_hash); | 533 installer->set_expected_hash(file.expected_hash); |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 685 // the map, someone failed to update |unloaded_extension_paths_|. | 686 // the map, someone failed to update |unloaded_extension_paths_|. |
| 686 CHECK(!path.empty()); | 687 CHECK(!path.empty()); |
| 687 scoped_refptr<extensions::UnpackedInstaller> unpacked_installer = | 688 scoped_refptr<extensions::UnpackedInstaller> unpacked_installer = |
| 688 extensions::UnpackedInstaller::Create(this); | 689 extensions::UnpackedInstaller::Create(this); |
| 689 unpacked_installer->set_be_noisy_on_failure(be_noisy); | 690 unpacked_installer->set_be_noisy_on_failure(be_noisy); |
| 690 unpacked_installer->Load(path); | 691 unpacked_installer->Load(path); |
| 691 } | 692 } |
| 692 } | 693 } |
| 693 | 694 |
| 694 void ExtensionService::ReloadExtension(const std::string& extension_id) { | 695 void ExtensionService::ReloadExtension(const std::string& extension_id) { |
| 695 ReloadExtensionImpl(extension_id, true); // be_noisy | 696 ReloadExtensionImpl(extension_id, true); // be_noisy |
| 696 } | 697 } |
| 697 | 698 |
| 698 void ExtensionService::ReloadExtensionWithQuietFailure( | 699 void ExtensionService::ReloadExtensionWithQuietFailure( |
| 699 const std::string& extension_id) { | 700 const std::string& extension_id) { |
| 700 ReloadExtensionImpl(extension_id, false); // be_noisy | 701 ReloadExtensionImpl(extension_id, false); // be_noisy |
| 701 } | 702 } |
| 702 | 703 |
| 703 bool ExtensionService::UninstallExtension( | 704 bool ExtensionService::UninstallExtension( |
| 704 // "transient" because the process of uninstalling may cause the reference | 705 // "transient" because the process of uninstalling may cause the reference |
| 705 // to become invalid. Instead, use |extenson->id()|. | 706 // to become invalid. Instead, use |extenson->id()|. |
| 706 const std::string& transient_extension_id, | 707 const std::string& transient_extension_id, |
| 707 extensions::UninstallReason reason, | 708 extensions::UninstallReason reason, |
| 708 const base::Closure& deletion_done_callback, | 709 const base::Closure& deletion_done_callback, |
| 709 base::string16* error) { | 710 base::string16* error) { |
| 710 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 711 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| (...skipping 1740 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2451 } | 2452 } |
| 2452 | 2453 |
| 2453 void ExtensionService::OnProfileDestructionStarted() { | 2454 void ExtensionService::OnProfileDestructionStarted() { |
| 2454 ExtensionIdSet ids_to_unload = registry_->enabled_extensions().GetIDs(); | 2455 ExtensionIdSet ids_to_unload = registry_->enabled_extensions().GetIDs(); |
| 2455 for (ExtensionIdSet::iterator it = ids_to_unload.begin(); | 2456 for (ExtensionIdSet::iterator it = ids_to_unload.begin(); |
| 2456 it != ids_to_unload.end(); | 2457 it != ids_to_unload.end(); |
| 2457 ++it) { | 2458 ++it) { |
| 2458 UnloadExtension(*it, UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN); | 2459 UnloadExtension(*it, UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN); |
| 2459 } | 2460 } |
| 2460 } | 2461 } |
| OLD | NEW |