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

Side by Side Diff: chrome/browser/extensions/crx_installer.cc

Issue 11198067: Move extension unpack intermediate dir to Extensions/Temp (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: standardize names Created 8 years, 2 months 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/extensions/crx_installer.h" 5 #include "chrome/browser/extensions/crx_installer.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 151
152 void CrxInstaller::InstallCrx(const FilePath& source_file) { 152 void CrxInstaller::InstallCrx(const FilePath& source_file) {
153 source_file_ = source_file; 153 source_file_ = source_file;
154 154
155 scoped_refptr<SandboxedUnpacker> unpacker( 155 scoped_refptr<SandboxedUnpacker> unpacker(
156 new SandboxedUnpacker( 156 new SandboxedUnpacker(
157 source_file, 157 source_file,
158 content::ResourceDispatcherHost::Get() != NULL, 158 content::ResourceDispatcherHost::Get() != NULL,
159 install_source_, 159 install_source_,
160 creation_flags_, 160 creation_flags_,
161 install_directory_,
161 this)); 162 this));
162 163
163 if (!BrowserThread::PostTask( 164 if (!BrowserThread::PostTask(
164 BrowserThread::FILE, FROM_HERE, 165 BrowserThread::FILE, FROM_HERE,
165 base::Bind(&SandboxedUnpacker::Start, unpacker.get()))) 166 base::Bind(&SandboxedUnpacker::Start, unpacker.get())))
166 NOTREACHED(); 167 NOTREACHED();
167 } 168 }
168 169
169 void CrxInstaller::InstallUserScript(const FilePath& source_file, 170 void CrxInstaller::InstallUserScript(const FilePath& source_file,
170 const GURL& download_url) { 171 const GURL& download_url) {
171 DCHECK(!download_url.is_empty()); 172 DCHECK(!download_url.is_empty());
172 173
173 source_file_ = source_file; 174 source_file_ = source_file;
174 download_url_ = download_url; 175 download_url_ = download_url;
175 176
176 if (!BrowserThread::PostTask( 177 if (!BrowserThread::PostTask(
177 BrowserThread::FILE, FROM_HERE, 178 BrowserThread::FILE, FROM_HERE,
178 base::Bind(&CrxInstaller::ConvertUserScriptOnFileThread, this))) 179 base::Bind(&CrxInstaller::ConvertUserScriptOnFileThread, this)))
179 NOTREACHED(); 180 NOTREACHED();
180 } 181 }
181 182
182 void CrxInstaller::ConvertUserScriptOnFileThread() { 183 void CrxInstaller::ConvertUserScriptOnFileThread() {
183 string16 error; 184 string16 error;
184 scoped_refptr<Extension> extension = ConvertUserScriptToExtension( 185 scoped_refptr<Extension> extension = ConvertUserScriptToExtension(
185 source_file_, download_url_, &error); 186 source_file_, download_url_, install_directory_, &error);
186 if (!extension) { 187 if (!extension) {
187 ReportFailureFromFileThread(CrxInstallerError(error)); 188 ReportFailureFromFileThread(CrxInstallerError(error));
188 return; 189 return;
189 } 190 }
190 191
191 OnUnpackSuccess(extension->path(), extension->path(), NULL, extension); 192 OnUnpackSuccess(extension->path(), extension->path(), NULL, extension);
192 } 193 }
193 194
194 void CrxInstaller::InstallWebApp(const WebApplicationInfo& web_app) { 195 void CrxInstaller::InstallWebApp(const WebApplicationInfo& web_app) {
195 if (!BrowserThread::PostTask( 196 if (!BrowserThread::PostTask(
196 BrowserThread::FILE, FROM_HERE, 197 BrowserThread::FILE, FROM_HERE,
197 base::Bind(&CrxInstaller::ConvertWebAppOnFileThread, this, web_app))) 198 base::Bind(&CrxInstaller::ConvertWebAppOnFileThread,
199 this,
200 web_app,
201 install_directory_)))
198 NOTREACHED(); 202 NOTREACHED();
199 } 203 }
200 204
201 void CrxInstaller::ConvertWebAppOnFileThread( 205 void CrxInstaller::ConvertWebAppOnFileThread(
202 const WebApplicationInfo& web_app) { 206 const WebApplicationInfo& web_app, const FilePath& install_directory) {
203 string16 error; 207 string16 error;
204 scoped_refptr<Extension> extension( 208 scoped_refptr<Extension> extension(
205 ConvertWebAppToExtension(web_app, base::Time::Now())); 209 ConvertWebAppToExtension(web_app, base::Time::Now(), install_directory));
206 if (!extension) { 210 if (!extension) {
207 // Validation should have stopped any potential errors before getting here. 211 // Validation should have stopped any potential errors before getting here.
208 NOTREACHED() << "Could not convert web app to extension."; 212 NOTREACHED() << "Could not convert web app to extension.";
209 return; 213 return;
210 } 214 }
211 215
212 // TODO(aa): conversion data gets lost here :( 216 // TODO(aa): conversion data gets lost here :(
213 217
214 OnUnpackSuccess(extension->path(), extension->path(), NULL, extension); 218 OnUnpackSuccess(extension->path(), extension->path(), NULL, extension);
215 } 219 }
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 // is problematic because they don't know anything about the 656 // is problematic because they don't know anything about the
653 // extension before it is unpacked, so they cannot filter based 657 // extension before it is unpacked, so they cannot filter based
654 // on the extension. 658 // on the extension.
655 content::NotificationService::current()->Notify( 659 content::NotificationService::current()->Notify(
656 chrome::NOTIFICATION_CRX_INSTALLER_DONE, 660 chrome::NOTIFICATION_CRX_INSTALLER_DONE,
657 content::Source<CrxInstaller>(this), 661 content::Source<CrxInstaller>(this),
658 content::Details<const Extension>(extension)); 662 content::Details<const Extension>(extension));
659 } 663 }
660 664
661 } // namespace extensions 665 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/crx_installer.h ('k') | chrome/browser/extensions/sandboxed_unpacker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698