Commit d33c79e4 authored by Lei Zhang's avatar Lei Zhang Committed by Commit Bot

Make HeadlessContentMainDelegate::InitializeResourceBundle() standalone.

It is only used within headless_content_main_delegate.cc, so do not
expose in the header.

Change-Id: If3b84d343906bc74683bee357ed3a3bb3748d67f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1927021
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: default avatarAndrey Kosyakov <caseq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#717257}
parent 3e579826
......@@ -71,6 +71,7 @@ const base::FilePath::CharType kDefaultProfileName[] =
FILE_PATH_LITERAL("Default");
namespace {
// Keep in sync with content/common/content_constants_internal.h.
#if !defined(CHROME_MULTIPLE_DLL_CHILD)
// TODO(skyostil): Add a tracing test for this.
......@@ -86,6 +87,68 @@ base::LazyInstance<HeadlessCrashReporterClient>::Leaky g_headless_crash_client =
const char kLogFileName[] = "CHROME_LOG_FILE";
const char kHeadlessCrashKey[] = "headless";
void InitializeResourceBundle() {
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
const std::string locale =
command_line->GetSwitchValueASCII(::switches::kLang);
ui::ResourceBundle::InitSharedInstanceWithLocale(
locale, nullptr, ui::ResourceBundle::DO_NOT_LOAD_COMMON_RESOURCES);
#ifdef HEADLESS_USE_EMBEDDED_RESOURCES
ui::ResourceBundle::GetSharedInstance().AddDataPackFromBuffer(
base::StringPiece(
reinterpret_cast<const char*>(kHeadlessResourcePak.contents),
kHeadlessResourcePak.length),
ui::SCALE_FACTOR_NONE);
#else
base::FilePath dir_module;
bool result = base::PathService::Get(base::DIR_MODULE, &dir_module);
DCHECK(result);
// Try loading the headless library pak file first. If it doesn't exist (i.e.,
// when we're running with the --headless switch), fall back to the browser's
// resource pak.
base::FilePath headless_pak =
dir_module.Append(FILE_PATH_LITERAL("headless_lib.pak"));
if (base::PathExists(headless_pak)) {
ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
headless_pak, ui::SCALE_FACTOR_NONE);
return;
}
// Otherwise, load resources.pak, chrome_100 and chrome_200.
base::FilePath resources_pak =
dir_module.Append(FILE_PATH_LITERAL("resources.pak"));
base::FilePath chrome_100_pak =
dir_module.Append(FILE_PATH_LITERAL("chrome_100_percent.pak"));
base::FilePath chrome_200_pak =
dir_module.Append(FILE_PATH_LITERAL("chrome_200_percent.pak"));
#if defined(OS_MACOSX) && !defined(COMPONENT_BUILD)
// In non component builds, check if fall back in Resources/ folder is
// available.
if (!base::PathExists(resources_pak)) {
resources_pak =
dir_module.Append(FILE_PATH_LITERAL("Resources/resources.pak"));
chrome_100_pak = dir_module.Append(
FILE_PATH_LITERAL("Resources/chrome_100_percent.pak"));
chrome_200_pak = dir_module.Append(
FILE_PATH_LITERAL("Resources/chrome_200_percent.pak"));
}
#endif
ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
resources_pak, ui::SCALE_FACTOR_NONE);
ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
chrome_100_pak, ui::SCALE_FACTOR_100P);
ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
chrome_200_pak, ui::SCALE_FACTOR_200P);
#endif
}
} // namespace
HeadlessContentMainDelegate::HeadlessContentMainDelegate(
......@@ -376,68 +439,6 @@ HeadlessBrowser::Options* HeadlessContentMainDelegate::options() {
return options_.get();
}
// static
void HeadlessContentMainDelegate::InitializeResourceBundle() {
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
const std::string locale =
command_line->GetSwitchValueASCII(::switches::kLang);
ui::ResourceBundle::InitSharedInstanceWithLocale(
locale, nullptr, ui::ResourceBundle::DO_NOT_LOAD_COMMON_RESOURCES);
#ifdef HEADLESS_USE_EMBEDDED_RESOURCES
ui::ResourceBundle::GetSharedInstance().AddDataPackFromBuffer(
base::StringPiece(
reinterpret_cast<const char*>(kHeadlessResourcePak.contents),
kHeadlessResourcePak.length),
ui::SCALE_FACTOR_NONE);
#else
base::FilePath dir_module;
bool result = base::PathService::Get(base::DIR_MODULE, &dir_module);
DCHECK(result);
// Try loading the headless library pak file first. If it doesn't exist (i.e.,
// when we're running with the --headless switch), fall back to the browser's
// resource pak.
base::FilePath headless_pak =
dir_module.Append(FILE_PATH_LITERAL("headless_lib.pak"));
if (base::PathExists(headless_pak)) {
ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
headless_pak, ui::SCALE_FACTOR_NONE);
return;
}
// Otherwise, load resources.pak, chrome_100 and chrome_200.
base::FilePath resources_pak =
dir_module.Append(FILE_PATH_LITERAL("resources.pak"));
base::FilePath chrome_100_pak =
dir_module.Append(FILE_PATH_LITERAL("chrome_100_percent.pak"));
base::FilePath chrome_200_pak =
dir_module.Append(FILE_PATH_LITERAL("chrome_200_percent.pak"));
#if defined(OS_MACOSX) && !defined(COMPONENT_BUILD)
// In non component builds, check if fall back in Resources/ folder is
// available.
if (!base::PathExists(resources_pak)) {
resources_pak =
dir_module.Append(FILE_PATH_LITERAL("Resources/resources.pak"));
chrome_100_pak = dir_module.Append(
FILE_PATH_LITERAL("Resources/chrome_100_percent.pak"));
chrome_200_pak = dir_module.Append(
FILE_PATH_LITERAL("Resources/chrome_200_percent.pak"));
}
#endif
ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
resources_pak, ui::SCALE_FACTOR_NONE);
ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
chrome_100_pak, ui::SCALE_FACTOR_100P);
ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
chrome_200_pak, ui::SCALE_FACTOR_200P);
#endif
}
#if !defined(CHROME_MULTIPLE_DLL_CHILD)
content::ContentBrowserClient*
HeadlessContentMainDelegate::CreateContentBrowserClient() {
......
......@@ -69,7 +69,6 @@ class HEADLESS_EXPORT HeadlessContentMainDelegate
HeadlessBrowser::Options* options();
static void InitializeResourceBundle();
static HeadlessContentMainDelegate* GetInstance();
void InitLogging(const base::CommandLine& command_line);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment