Index: chrome/browser/chrome_content_browser_client.cc |
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc |
index 65b0a7762efee86ab154f52097c6d0684b945620..349885d16842d4c01733a530f2ed84a422e838ce 100644 |
--- a/chrome/browser/chrome_content_browser_client.cc |
+++ b/chrome/browser/chrome_content_browser_client.cc |
@@ -10,6 +10,7 @@ |
#include "base/bind.h" |
#include "base/command_line.h" |
+#include "base/files/scoped_file.h" |
#include "base/lazy_instance.h" |
#include "base/path_service.h" |
#include "base/prefs/pref_service.h" |
@@ -2408,7 +2409,7 @@ void ChromeContentBrowserClient::GetAdditionalFileSystemBackends( |
void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess( |
const CommandLine& command_line, |
int child_process_id, |
- std::vector<FileDescriptorInfo>* mappings) { |
+ FileDescriptorInfo* mappings) { |
#if defined(OS_ANDROID) |
base::FilePath data_path; |
PathService::Get(ui::DIR_RESOURCE_PAKS_ANDROID, &data_path); |
@@ -2419,30 +2420,30 @@ void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess( |
data_path.AppendASCII("chrome_100_percent.pak"); |
base::File file(chrome_resources_pak, flags); |
DCHECK(file.IsValid()); |
- mappings->push_back(FileDescriptorInfo(kAndroidChrome100PercentPakDescriptor, |
- FileDescriptor(file.Pass()))); |
+ mappings->Transfer(kAndroidChrome100PercentPakDescriptor, |
+ base::ScopedFD(file.TakePlatformFile())); |
const std::string locale = GetApplicationLocale(); |
base::FilePath locale_pak = ResourceBundle::GetSharedInstance(). |
GetLocaleFilePath(locale, false); |
file.Initialize(locale_pak, flags); |
DCHECK(file.IsValid()); |
- mappings->push_back(FileDescriptorInfo(kAndroidLocalePakDescriptor, |
- FileDescriptor(file.Pass()))); |
+ mappings->Transfer(kAndroidLocalePakDescriptor, |
+ base::ScopedFD(file.TakePlatformFile())); |
base::FilePath resources_pack_path; |
PathService::Get(chrome::FILE_RESOURCES_PACK, &resources_pack_path); |
file.Initialize(resources_pack_path, flags); |
DCHECK(file.IsValid()); |
- mappings->push_back(FileDescriptorInfo(kAndroidUIResourcesPakDescriptor, |
- FileDescriptor(file.Pass()))); |
+ mappings->Transfer(kAndroidUIResourcesPakDescriptor, |
+ base::ScopedFD(file.TakePlatformFile())); |
if (breakpad::IsCrashReporterEnabled()) { |
file = breakpad::CrashDumpManager::GetInstance()->CreateMinidumpFile( |
child_process_id); |
if (file.IsValid()) { |
- mappings->push_back(FileDescriptorInfo(kAndroidMinidumpDescriptor, |
- FileDescriptor(file.Pass()))); |
+ mappings->Transfer(kAndroidMinidumpDescriptor, |
+ base::ScopedFD(file.TakePlatformFile())); |
} else { |
LOG(ERROR) << "Failed to create file for minidump, crash reporting will " |
"be disabled for this process."; |
@@ -2458,15 +2459,13 @@ void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess( |
app_data_path.AppendASCII("icudtl.dat"); |
base::File icudata_file(icudata_path, flags); |
DCHECK(icudata_file.IsValid()); |
- mappings->push_back(FileDescriptorInfo(kAndroidICUDataDescriptor, |
- FileDescriptor(icudata_file.Pass()))); |
+ mappings->Transfer(kAndroidICUDataDescriptor, |
+ base::ScopedFD(icudata_file.TakePlatformFile())); |
#else |
int crash_signal_fd = GetCrashSignalFD(command_line); |
if (crash_signal_fd >= 0) { |
- mappings->push_back(FileDescriptorInfo(kCrashDumpSignal, |
- FileDescriptor(crash_signal_fd, |
- false))); |
+ mappings->Share(kCrashDumpSignal, crash_signal_fd); |
} |
#endif // defined(OS_ANDROID) |
} |