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

Side by Side Diff: chrome/browser/chrome_content_browser_client.cc

Issue 1187433006: Load language .pak files directly from the apk when using splits (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@locale-res-or-file
Patch Set: Created 5 years, 6 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
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/chrome_content_browser_client.h" 5 #include "chrome/browser/chrome_content_browser_client.h"
6 6
7 #include <set> 7 #include <set>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 #include "chrome/browser/chromeos/fileapi/file_system_backend.h" 150 #include "chrome/browser/chromeos/fileapi/file_system_backend.h"
151 #include "chrome/browser/chromeos/fileapi/mtp_file_system_backend_delegate.h" 151 #include "chrome/browser/chromeos/fileapi/mtp_file_system_backend_delegate.h"
152 #include "chrome/browser/chromeos/login/startup_utils.h" 152 #include "chrome/browser/chromeos/login/startup_utils.h"
153 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" 153 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
154 #include "chrome/browser/chromeos/system/input_device_settings.h" 154 #include "chrome/browser/chromeos/system/input_device_settings.h"
155 #include "chromeos/chromeos_switches.h" 155 #include "chromeos/chromeos_switches.h"
156 #include "components/user_manager/user_manager.h" 156 #include "components/user_manager/user_manager.h"
157 #elif defined(OS_LINUX) 157 #elif defined(OS_LINUX)
158 #include "chrome/browser/chrome_browser_main_linux.h" 158 #include "chrome/browser/chrome_browser_main_linux.h"
159 #elif defined(OS_ANDROID) 159 #elif defined(OS_ANDROID)
160 #include "base/android/apk_assets.h"
161 #include "base/android/build_info.h"
160 #include "chrome/browser/android/new_tab_page_url_handler.h" 162 #include "chrome/browser/android/new_tab_page_url_handler.h"
161 #include "chrome/browser/android/webapps/single_tab_mode_tab_helper.h" 163 #include "chrome/browser/android/webapps/single_tab_mode_tab_helper.h"
162 #include "chrome/browser/chrome_browser_main_android.h" 164 #include "chrome/browser/chrome_browser_main_android.h"
163 #include "chrome/common/descriptors_android.h" 165 #include "chrome/common/descriptors_android.h"
164 #include "components/crash/browser/crash_dump_manager_android.h" 166 #include "components/crash/browser/crash_dump_manager_android.h"
165 #include "components/service_tab_launcher/browser/android/service_tab_launcher.h " 167 #include "components/service_tab_launcher/browser/android/service_tab_launcher.h "
166 #include "ui/base/resource/resource_bundle_android.h" 168 #include "ui/base/resource/resource_bundle_android.h"
167 #elif defined(OS_POSIX) 169 #elif defined(OS_POSIX)
168 #include "chrome/browser/chrome_browser_main_posix.h" 170 #include "chrome/browser/chrome_browser_main_posix.h"
169 #endif 171 #endif
(...skipping 2047 matching lines...) Expand 10 before | Expand all | Expand 10 after
2217 FileDescriptorInfo* mappings, 2219 FileDescriptorInfo* mappings,
2218 std::map<int, base::MemoryMappedFile::Region>* regions) { 2220 std::map<int, base::MemoryMappedFile::Region>* regions) {
2219 int fd = ui::GetMainAndroidPackFd( 2221 int fd = ui::GetMainAndroidPackFd(
2220 &(*regions)[kAndroidUIResourcesPakDescriptor]); 2222 &(*regions)[kAndroidUIResourcesPakDescriptor]);
2221 mappings->Share(kAndroidUIResourcesPakDescriptor, fd); 2223 mappings->Share(kAndroidUIResourcesPakDescriptor, fd);
2222 2224
2223 fd = ui::GetCommonResourcesPackFd( 2225 fd = ui::GetCommonResourcesPackFd(
2224 &(*regions)[kAndroidChrome100PercentPakDescriptor]); 2226 &(*regions)[kAndroidChrome100PercentPakDescriptor]);
2225 mappings->Share(kAndroidChrome100PercentPakDescriptor, fd); 2227 mappings->Share(kAndroidChrome100PercentPakDescriptor, fd);
2226 2228
2227 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ; 2229 if (!locale_pak_fd_.is_valid()) {
2228 const std::string locale = GetApplicationLocale(); 2230 const std::string locale = GetApplicationLocale();
2229 base::FilePath locale_pak = ResourceBundle::GetSharedInstance(). 2231 if (ui::GetLocalePaksStoredInApk()) {
2230 GetLocaleFilePath(locale, false); 2232 std::string pak_path = ui::GetPathForAndroidLocalePakWithinApk(locale);
2231 base::File file(locale_pak, flags); 2233 locale_pak_fd_.reset(
2232 DCHECK(file.IsValid()); 2234 base::android::OpenApkAsset(pak_path, &locale_pak_region_));
2233 mappings->Transfer(kAndroidLocalePakDescriptor, 2235 } else {
2234 base::ScopedFD(file.TakePlatformFile())); 2236 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ;
2237 base::FilePath locale_pak = ResourceBundle::GetSharedInstance().
2238 GetLocaleFilePath(locale, false);
2239 base::File file(locale_pak, flags);
2240 locale_pak_fd_.reset(file.TakePlatformFile());
2241 locale_pak_region_ = base::MemoryMappedFile::Region::kWholeFile;
2242 }
2243 DCHECK(locale_pak_fd_.is_valid());
2244 }
2245 mappings->Share(kAndroidLocalePakDescriptor, locale_pak_fd_.get());
2246 regions->insert(
2247 std::make_pair(kAndroidLocalePakDescriptor, locale_pak_region_));
2235 2248
2236 if (breakpad::IsCrashReporterEnabled()) { 2249 if (breakpad::IsCrashReporterEnabled()) {
2237 file = breakpad::CrashDumpManager::GetInstance()->CreateMinidumpFile( 2250 base::File file =
2238 child_process_id); 2251 breakpad::CrashDumpManager::GetInstance()->CreateMinidumpFile(
2252 child_process_id);
2239 if (file.IsValid()) { 2253 if (file.IsValid()) {
2240 mappings->Transfer(kAndroidMinidumpDescriptor, 2254 mappings->Transfer(kAndroidMinidumpDescriptor,
2241 base::ScopedFD(file.TakePlatformFile())); 2255 base::ScopedFD(file.TakePlatformFile()));
2242 } else { 2256 } else {
2243 LOG(ERROR) << "Failed to create file for minidump, crash reporting will " 2257 LOG(ERROR) << "Failed to create file for minidump, crash reporting will "
2244 "be disabled for this process."; 2258 "be disabled for this process.";
2245 } 2259 }
2246 } 2260 }
2247 2261
2248 base::FilePath app_data_path; 2262 base::FilePath app_data_path;
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
2429 switches::kDisableWebRtcEncryption, 2443 switches::kDisableWebRtcEncryption,
2430 }; 2444 };
2431 to_command_line->CopySwitchesFrom(from_command_line, 2445 to_command_line->CopySwitchesFrom(from_command_line,
2432 kWebRtcDevSwitchNames, 2446 kWebRtcDevSwitchNames,
2433 arraysize(kWebRtcDevSwitchNames)); 2447 arraysize(kWebRtcDevSwitchNames));
2434 } 2448 }
2435 } 2449 }
2436 #endif // defined(ENABLE_WEBRTC) 2450 #endif // defined(ENABLE_WEBRTC)
2437 2451
2438 } // namespace chrome 2452 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698