| Index: chrome/browser/utility_process_host.cc
|
| diff --git a/chrome/browser/utility_process_host.cc b/chrome/browser/utility_process_host.cc
|
| index 2f7ce5d53573bdb234db70921eeb732d397fedf3..e75339568991bab78b5c5aed3a5be68f69c60f63 100644
|
| --- a/chrome/browser/utility_process_host.cc
|
| +++ b/chrome/browser/utility_process_host.cc
|
| @@ -26,9 +26,26 @@ UtilityProcessHost::~UtilityProcessHost() {
|
| }
|
|
|
| bool UtilityProcessHost::StartExtensionUnpacker(const FilePath& extension) {
|
| + FilePath initial_path = extension.DirName();
|
| + FilePath real_path;
|
| +
|
| +#if defined(OS_POSIX)
|
| + if (!file_util::RealPath(initial_path, &real_path)) {
|
| + real_path = initial_path;
|
| + }
|
| +#else
|
| + // TODO(skerner): For windows, we need to expand NTFS junctions.
|
| + // http://crbug.com/13044
|
| + real_path = initial_path;
|
| +#endif
|
| +
|
| + // TODO(skerner): Remove this logging once we understand crbug.com/35198
|
| + LOG(INFO) << "initial_path: " << initial_path.value();
|
| + LOG(INFO) << "real_path: " << real_path.value();
|
| +
|
| // Grant the subprocess access to the entire subdir the extension file is
|
| // in, so that it can unpack to that dir.
|
| - if (!StartProcess(extension.DirName()))
|
| + if (!StartProcess(real_path))
|
| return false;
|
|
|
| Send(new UtilityMsg_UnpackExtension(extension));
|
|
|