http://bugs.winehq.org/show_bug.cgi?id=27248
fracting fracting@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |kernel32
--- Comment #5 from fracting fracting@gmail.com 2011-12-23 01:09:13 CST --- In chrome/browser/extensions/sandboxed_extension_unpacker.cc, the Chrome extension unpacker start unpack a crx file with this function:
SandboxedExtensionUnpacker::Start()
This functioin use NormalizeFilePath to get the normalized path of the extension crx file. If NormalizeFilePath return FALSE, the unpacking will fail. --- snip --- if (!file_util::NormalizeFilePath(temp_crx_path, &link_free_crx_path)) { LOG(ERROR) << "Could not get the normalized path of " << temp_crx_path.value(); --- snip ---
In base/file_util_win.cc: In NormalizeFilePath(): --- snip --- if (!NormalizeToNativeFilePath(path, &mapped_file)) return false --- snip ---
In NormalizeToNativeFilePath(): --- snip --- if (::GetMappedFileNameW(cp, file_view, mapped_file_path, kMaxPathLength)) { *nt_path = FilePath(mapped_file_path); success = true; } ... return success; --- snip ---
Since wine's GetMappedFileNameW is forwarding to K32GetMappedFileNameW, which is a stub and always return 0, NormalizeFilePath will always return FALSE. --- snip --- DWORD WINAPI K32GetMappedFileNameW(HANDLE process, LPVOID lpv, LPWSTR file_name, DWORD size) { FIXME_(file)("(%p, %p, %p, %d): stub\n", process, lpv, file_name, size);
if (file_name && size) file_name[0] = '\0';
return 0; } --- snip ---
So, this bug needs K32GetMappedFileNameW to be implemented.
GetMappedFileNameW is implemented in native psapi.dll, but there is no "psapi.dll" component for wine bugzilla, so I'm setting the component to kernel32, which is where K32GetMappedFileNameW placed.