Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Side by Side Diff: chrome/browser/component_updater/component_updater_service.cc

Issue 113533004: Clean up empty directories after install and on errors (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_updater_service.h" 5 #include "chrome/browser/component_updater/component_updater_service.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 936 matching lines...) Expand 10 before | Expand all | Expand 10 after
947 // |unpacker|. If there is an error this function is in charge of deleting 947 // |unpacker|. If there is an error this function is in charge of deleting
948 // the files created. 948 // the files created.
949 void CrxUpdateService::Install(scoped_ptr<CRXContext> context, 949 void CrxUpdateService::Install(scoped_ptr<CRXContext> context,
950 const base::FilePath& crx_path) { 950 const base::FilePath& crx_path) {
951 // This function owns the file at |crx_path| and the |context| object. 951 // This function owns the file at |crx_path| and the |context| object.
952 ComponentUnpacker unpacker(context->pk_hash, 952 ComponentUnpacker unpacker(context->pk_hash,
953 crx_path, 953 crx_path,
954 context->fingerprint, 954 context->fingerprint,
955 component_patcher_.get(), 955 component_patcher_.get(),
956 context->installer); 956 context->installer);
957 if (!base::DeleteFile(crx_path, false)) 957 if (!component_updater::DeleteFileAndEmptyParentDirectory(crx_path))
958 NOTREACHED() << crx_path.value(); 958 NOTREACHED() << crx_path.value();
959
959 // Why unretained? See comment at top of file. 960 // Why unretained? See comment at top of file.
960 BrowserThread::PostDelayedTask( 961 BrowserThread::PostDelayedTask(
961 BrowserThread::UI, 962 BrowserThread::UI,
962 FROM_HERE, 963 FROM_HERE,
963 base::Bind(&CrxUpdateService::DoneInstalling, base::Unretained(this), 964 base::Bind(&CrxUpdateService::DoneInstalling, base::Unretained(this),
964 context->id, unpacker.error(), unpacker.extended_error()), 965 context->id, unpacker.error(), unpacker.extended_error()),
965 base::TimeDelta::FromMilliseconds(config_->StepDelay())); 966 base::TimeDelta::FromMilliseconds(config_->StepDelay()));
966 } 967 }
967 968
968 // Installation has been completed. Adjust the component status and 969 // Installation has been completed. Adjust the component status and
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
1092 } 1093 }
1093 1094
1094 // The component update factory. Using the component updater as a singleton 1095 // The component update factory. Using the component updater as a singleton
1095 // is the job of the browser process. 1096 // is the job of the browser process.
1096 ComponentUpdateService* ComponentUpdateServiceFactory( 1097 ComponentUpdateService* ComponentUpdateServiceFactory(
1097 ComponentUpdateService::Configurator* config) { 1098 ComponentUpdateService::Configurator* config) {
1098 DCHECK(config); 1099 DCHECK(config);
1099 return new CrxUpdateService(config); 1100 return new CrxUpdateService(config);
1100 } 1101 }
1101 1102
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698