mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-02-09 08:38:41 +01:00
Move devtools resources to a separate devtools_resources.pak file (issue #714).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@762 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
parent
234acdd760
commit
5ac06eb984
26
cef1/cef.gyp
26
cef1/cef.gyp
@ -49,6 +49,7 @@
|
||||
],
|
||||
'mac_bundle_resources': [
|
||||
'<@(cefclient_bundle_resources_mac)',
|
||||
'<(grit_out_dir)/devtools_resources.pak',
|
||||
],
|
||||
'mac_bundle_resources!': [
|
||||
# TODO(mark): Come up with a fancier way to do this (mac_info_plist?)
|
||||
@ -87,24 +88,6 @@
|
||||
'<@(locales)',
|
||||
],
|
||||
},
|
||||
{
|
||||
# On Windows chrome.pak will contain only the inspector resources.
|
||||
# Other resources are built into libcef.dll.
|
||||
'action_name': 'repack_resources',
|
||||
'variables': {
|
||||
'pak_inputs': [
|
||||
'<(grit_out_dir)/devtools_resources.pak',
|
||||
],
|
||||
},
|
||||
'inputs': [
|
||||
'<(repack_path)',
|
||||
'<@(pak_inputs)',
|
||||
],
|
||||
'outputs': [
|
||||
'<(INTERMEDIATE_DIR)/repack/chrome.pak',
|
||||
],
|
||||
'action': ['python', '<(repack_path)', '<@(_outputs)', '<@(pak_inputs)'],
|
||||
},
|
||||
],
|
||||
'copies': [
|
||||
{
|
||||
@ -116,7 +99,7 @@
|
||||
{
|
||||
'destination': '<(PRODUCT_DIR)',
|
||||
'files': [
|
||||
'<(INTERMEDIATE_DIR)/repack/chrome.pak'
|
||||
'<(grit_out_dir)/devtools_resources.pak'
|
||||
],
|
||||
},
|
||||
],
|
||||
@ -175,7 +158,6 @@
|
||||
'process_outputs_as_mac_bundle_resources': 1,
|
||||
'variables': {
|
||||
'pak_inputs': [
|
||||
'<(grit_out_dir)/devtools_resources.pak',
|
||||
'<(SHARED_INTERMEDIATE_DIR)/net/net_resources.pak',
|
||||
'<(SHARED_INTERMEDIATE_DIR)/ui/ui_resources/ui_resources_100_percent.pak',
|
||||
'<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_chromium_resources.pak',
|
||||
@ -255,7 +237,6 @@
|
||||
'action_name': 'repack_resources',
|
||||
'variables': {
|
||||
'pak_inputs': [
|
||||
'<(grit_out_dir)/devtools_resources.pak',
|
||||
'<(SHARED_INTERMEDIATE_DIR)/net/net_resources.pak',
|
||||
'<(SHARED_INTERMEDIATE_DIR)/ui/ui_resources/ui_resources_100_percent.pak',
|
||||
'<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_chromium_resources.pak',
|
||||
@ -282,7 +263,8 @@
|
||||
{
|
||||
'destination': '<(PRODUCT_DIR)',
|
||||
'files': [
|
||||
'<(INTERMEDIATE_DIR)/repack/chrome.pak'
|
||||
'<(INTERMEDIATE_DIR)/repack/chrome.pak',
|
||||
'<(grit_out_dir)/devtools_resources.pak',
|
||||
],
|
||||
},
|
||||
{
|
||||
|
@ -188,18 +188,18 @@ typedef struct _cef_settings_t {
|
||||
#endif
|
||||
|
||||
///
|
||||
// The fully qualified path for the cef.pak file. If this value is empty
|
||||
// the cef.pak file must be located in the module directory. This value is
|
||||
// ignored on Mac OS X where pack files are always loaded from the app bundle
|
||||
// resource directory.
|
||||
// The fully qualified path for the resources directory. If this value is
|
||||
// empty the chrome.pak and/or devtools_resources.pak files must be located in
|
||||
// the module directory on Windows/Linux or the app bundle Resources directory
|
||||
// on Mac OS X.
|
||||
///
|
||||
cef_string_t pack_file_path;
|
||||
cef_string_t resources_dir_path;
|
||||
|
||||
///
|
||||
// The fully qualified path for the locales directory. If this value is empty
|
||||
// the locales directory must be located in the module directory. This value
|
||||
// is ignored on Mac OS X where pack files are always loaded from the app
|
||||
// bundle resource directory.
|
||||
// bundle Resources directory.
|
||||
///
|
||||
cef_string_t locales_dir_path;
|
||||
|
||||
|
@ -259,7 +259,7 @@ struct CefSettingsTraits {
|
||||
cef_string_list_free(s->extra_plugin_paths);
|
||||
cef_string_clear(&s->log_file);
|
||||
cef_string_clear(&s->javascript_flags);
|
||||
cef_string_clear(&s->pack_file_path);
|
||||
cef_string_clear(&s->resources_dir_path);
|
||||
cef_string_clear(&s->locales_dir_path);
|
||||
}
|
||||
|
||||
@ -294,8 +294,8 @@ struct CefSettingsTraits {
|
||||
src->auto_detect_proxy_settings_enabled;
|
||||
#endif
|
||||
|
||||
cef_string_set(src->pack_file_path.str, src->pack_file_path.length,
|
||||
&target->pack_file_path, copy);
|
||||
cef_string_set(src->resources_dir_path.str, src->resources_dir_path.length,
|
||||
&target->resources_dir_path, copy);
|
||||
cef_string_set(src->locales_dir_path.str, src->locales_dir_path.length,
|
||||
&target->locales_dir_path, copy);
|
||||
target->pack_loading_disabled = src->pack_loading_disabled;
|
||||
|
@ -37,31 +37,6 @@ namespace {
|
||||
// to initialize or reset to the same value.
|
||||
const int kNextBrowserIdReset = 1;
|
||||
|
||||
#if defined(OS_MACOSX)
|
||||
|
||||
FilePath GetDefaultPackPath() {
|
||||
// Start out with the path to the running executable.
|
||||
FilePath execPath;
|
||||
PathService::Get(base::FILE_EXE, &execPath);
|
||||
|
||||
// Get the main bundle path.
|
||||
FilePath bundlePath = base::mac::GetAppBundlePath(execPath);
|
||||
|
||||
// Go into the Contents/Resources directory.
|
||||
return bundlePath.Append(FILE_PATH_LITERAL("Contents"))
|
||||
.Append(FILE_PATH_LITERAL("Resources"));
|
||||
}
|
||||
|
||||
#else // !defined(OS_MACOSX)
|
||||
|
||||
FilePath GetDefaultPackPath() {
|
||||
FilePath pak_dir;
|
||||
PathService::Get(base::DIR_MODULE, &pak_dir);
|
||||
return pak_dir;
|
||||
}
|
||||
|
||||
#endif // !defined(OS_MACOSX)
|
||||
|
||||
// Used in multi-threaded message loop mode to observe shutdown of the UI
|
||||
// thread.
|
||||
class DestructionObserver : public MessageLoop::DestructionObserver {
|
||||
@ -392,14 +367,26 @@ CefRefPtr<CefBrowserImpl> CefContext::GetBrowserByID(int id) {
|
||||
}
|
||||
|
||||
void CefContext::InitializeResourceBundle() {
|
||||
FilePath pak_file, locales_dir;
|
||||
#if !defined(OS_WIN)
|
||||
FilePath chrome_pak_file;
|
||||
#endif
|
||||
FilePath devtools_pak_file, locales_dir;
|
||||
|
||||
if (!settings_.pack_loading_disabled) {
|
||||
if (settings_.pack_file_path.length > 0)
|
||||
pak_file = FilePath(CefString(&settings_.pack_file_path));
|
||||
FilePath resources_dir_path;
|
||||
if (settings_.resources_dir_path.length > 0)
|
||||
resources_dir_path = FilePath(CefString(&settings_.resources_dir_path));
|
||||
if (resources_dir_path.empty())
|
||||
resources_dir_path = GetResourcesFilePath();
|
||||
|
||||
if (pak_file.empty())
|
||||
pak_file = GetDefaultPackPath().Append(FILE_PATH_LITERAL("chrome.pak"));
|
||||
if (!resources_dir_path.empty()) {
|
||||
#if !defined(OS_WIN)
|
||||
chrome_pak_file = resources_dir_path.Append(
|
||||
FILE_PATH_LITERAL("chrome.pak"));
|
||||
#endif
|
||||
devtools_pak_file = resources_dir_path.Append(
|
||||
FILE_PATH_LITERAL("devtools_resources.pak"));
|
||||
}
|
||||
|
||||
if (settings_.locales_dir_path.length > 0)
|
||||
locales_dir = FilePath(CefString(&settings_.locales_dir_path));
|
||||
@ -420,14 +407,25 @@ void CefContext::InitializeResourceBundle() {
|
||||
CHECK(!loaded_locale.empty()) << "Locale could not be found for "
|
||||
<< locale_str;
|
||||
|
||||
if (file_util::PathExists(pak_file)) {
|
||||
resource_bundle_delegate_->set_allow_pack_file_load(true);
|
||||
|
||||
// The chrome.pak file is required on non-Windows platforms.
|
||||
#if !defined(OS_WIN)
|
||||
if (file_util::PathExists(chrome_pak_file)) {
|
||||
ResourceBundle::GetSharedInstance().AddDataPackFromPath(
|
||||
pak_file, ui::SCALE_FACTOR_NONE);
|
||||
resource_bundle_delegate_->set_allow_pack_file_load(false);
|
||||
chrome_pak_file, ui::SCALE_FACTOR_NONE);
|
||||
} else {
|
||||
NOTREACHED() << "Could not load chrome.pak";
|
||||
}
|
||||
#endif
|
||||
|
||||
// The devtools_resources.pak file is optional.
|
||||
if (file_util::PathExists(devtools_pak_file)) {
|
||||
ResourceBundle::GetSharedInstance().AddDataPackFromPath(
|
||||
devtools_pak_file, ui::SCALE_FACTOR_NONE);
|
||||
}
|
||||
|
||||
resource_bundle_delegate_->set_allow_pack_file_load(false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -536,25 +534,24 @@ base::StringPiece CefContext::GetDataResource(int resource_id) const {
|
||||
return value;
|
||||
}
|
||||
|
||||
#if defined(OS_MACOSX)
|
||||
FilePath CefContext::GetResourcesFilePath() const {
|
||||
FilePath path;
|
||||
// We need to know if we're bundled or not to know which path to use.
|
||||
if (base::mac::AmIBundled()) {
|
||||
PathService::Get(base::DIR_EXE, &path);
|
||||
path = path.Append(FilePath::kParentDirectory);
|
||||
return path.AppendASCII("Resources");
|
||||
} else {
|
||||
// TODO(port): Allow the embedder to customize the resource path.
|
||||
PathService::Get(base::DIR_SOURCE_ROOT, &path);
|
||||
path = path.AppendASCII("src");
|
||||
path = path.AppendASCII("cef");
|
||||
path = path.AppendASCII("tests");
|
||||
path = path.AppendASCII("cefclient");
|
||||
return path.AppendASCII("res");
|
||||
}
|
||||
#if defined(OS_MACOSX)
|
||||
// Start out with the path to the running executable.
|
||||
FilePath execPath;
|
||||
PathService::Get(base::FILE_EXE, &execPath);
|
||||
|
||||
// Get the main bundle path.
|
||||
FilePath bundlePath = base::mac::GetAppBundlePath(execPath);
|
||||
|
||||
// Go into the Contents/Resources directory.
|
||||
return bundlePath.Append(FILE_PATH_LITERAL("Contents"))
|
||||
.Append(FILE_PATH_LITERAL("Resources"));
|
||||
#else
|
||||
FilePath pak_dir;
|
||||
PathService::Get(base::DIR_MODULE, &pak_dir);
|
||||
return pak_dir;
|
||||
#endif
|
||||
}
|
||||
#endif // defined(OS_MACOSX)
|
||||
|
||||
std::string CefContext::locale() const {
|
||||
std::string localeStr = CefString(&settings_.locale);
|
||||
|
@ -59,9 +59,7 @@ class CefContext : public CefBase {
|
||||
string16 GetLocalizedString(int message_id) const;
|
||||
base::StringPiece GetDataResource(int resource_id) const;
|
||||
|
||||
#if defined(OS_MACOSX)
|
||||
FilePath GetResourcesFilePath() const;
|
||||
#endif
|
||||
|
||||
// Retrieve the path at which cache data will be stored on disk. If empty,
|
||||
// cache data will be stored in-memory.
|
||||
|
@ -250,8 +250,8 @@ void AppGetSettings(CefSettings& settings, CefRefPtr<CefApp>& app) {
|
||||
CefString(&settings.javascript_flags) =
|
||||
g_command_line->GetSwitchValue(cefclient::kJavascriptFlags);
|
||||
|
||||
CefString(&settings.pack_file_path) =
|
||||
g_command_line->GetSwitchValue(cefclient::kPackFilePath);
|
||||
CefString(&settings.resources_dir_path) =
|
||||
g_command_line->GetSwitchValue(cefclient::kResourcesDirPath);
|
||||
CefString(&settings.locales_dir_path) =
|
||||
g_command_line->GetSwitchValue(cefclient::kLocalesDirPath);
|
||||
|
||||
|
@ -30,7 +30,7 @@ const char kGraphicsImpl_DesktopCmdBuffer[] = "desktop-command-buffer";
|
||||
const char kLocalStorageQuota[] = "local-storage-quota";
|
||||
const char kSessionStorageQuota[] = "session-storage-quota";
|
||||
const char kJavascriptFlags[] = "javascript-flags";
|
||||
const char kPackFilePath[] = "pack-file-path";
|
||||
const char kResourcesDirPath[] = "resources-dir-path";
|
||||
const char kLocalesDirPath[] = "locales-dir-path";
|
||||
const char kPackLoadingDisabled[] = "pack-loading-disabled";
|
||||
|
||||
|
@ -32,7 +32,7 @@ extern const char kGraphicsImpl_DesktopCmdBuffer[];
|
||||
extern const char kLocalStorageQuota[];
|
||||
extern const char kSessionStorageQuota[];
|
||||
extern const char kJavascriptFlags[];
|
||||
extern const char kPackFilePath[];
|
||||
extern const char kResourcesDirPath[];
|
||||
extern const char kLocalesDirPath[];
|
||||
extern const char kPackLoadingDisabled[];
|
||||
|
||||
|
@ -117,8 +117,8 @@ void CefTestSuite::GetSettings(CefSettings& settings) {
|
||||
javascript_flags += " " + other_javascript_flags;
|
||||
CefString(&settings.javascript_flags) = javascript_flags;
|
||||
|
||||
CefString(&settings.pack_file_path) =
|
||||
commandline_->GetSwitchValueASCII(cefclient::kPackFilePath);
|
||||
CefString(&settings.resources_dir_path) =
|
||||
commandline_->GetSwitchValueASCII(cefclient::kResourcesDirPath);
|
||||
CefString(&settings.locales_dir_path) =
|
||||
commandline_->GetSwitchValueASCII(cefclient::kLocalesDirPath);
|
||||
|
||||
|
@ -63,14 +63,21 @@ Required components:
|
||||
|
||||
* Localized resources
|
||||
locales/
|
||||
Note: A .pak file is loaded from this folder based on the value of
|
||||
CefSettings.locale. Only configured locales need to be distributed. If no
|
||||
locale is configured the default locale of "en-US" will be used. The
|
||||
locales folder must exist in the same directory as the executable.
|
||||
Note: Contains localized strings for WebKit UI controls. A .pak file is loaded
|
||||
from this folder based on the value of environment variables which are read
|
||||
with the following precedence order: LANGUAGE, LC_ALL, LC_MESSAGES and LANG.
|
||||
Only configured locales need to be distributed. If no locale is configured the
|
||||
default locale of "en-US" will be used. Locale file loading can be disabled
|
||||
completely using CefSettings.pack_loading_disabled. The locales folder path
|
||||
can be customized using CefSettings.locales_dir_path.
|
||||
|
||||
* Other resources
|
||||
chrome.pak
|
||||
Note: The chrome.pak file must exist in the same directory as the executable.
|
||||
devtools_resources.pak
|
||||
Note: The devtools_resources.pak file contains WebKit inspector resources and
|
||||
is optional. All other resources are required. Pack file loading can be
|
||||
disabled completely using CefSettings.pack_loading_disabled. The resources
|
||||
directory path can be customized using CefSettings.resources_dir_path.
|
||||
|
||||
|
||||
LICENSING
|
||||
|
@ -68,14 +68,21 @@ Required components:
|
||||
|
||||
* Localized resources
|
||||
Resources/*.lproj/
|
||||
Note: A .pak file is loaded from this folder based on the value of
|
||||
CefSettings.locale. Only configured locales need to be distributed. If no
|
||||
locale is configured the default locale of "en" will be used.
|
||||
Note: Contains localized strings for WebKit UI controls. A .pak file is loaded
|
||||
from this folder based on the CefSettings.locale value. Only configured
|
||||
locales need to be distributed. If no locale is configured the default locale
|
||||
of "en" will be used. Locale file loading can be disabled completely using
|
||||
CefSettings.pack_loading_disabled.
|
||||
|
||||
* Other resources
|
||||
Resources/chrome.pak
|
||||
Resources/devtools_resources.pak
|
||||
Resources/*.png
|
||||
Resources/*.tiff
|
||||
Note: The devtools_resources.pak file contains WebKit inspector resources and
|
||||
is optional. All other resources are required. Pack file loading can be
|
||||
disabled completely using CefSettings.pack_loading_disabled. The resources
|
||||
directory path can be customized using CefSettings.resources_dir_path.
|
||||
|
||||
Optional components:
|
||||
|
||||
|
@ -74,17 +74,22 @@ Required components:
|
||||
|
||||
* Localized resources
|
||||
locales/
|
||||
Note: A .pak file is loaded from this folder based on the value of
|
||||
CefSettings.locale. Only configured locales need to be distributed. If no
|
||||
locale is configured the default locale of "en-US" will be used. The
|
||||
locales folder must exist in the same directory as libcef.dll.
|
||||
|
||||
* Other resources
|
||||
chrome.pak
|
||||
Note: The chrome.pak file must exist in the same directory as libcef.dll.
|
||||
Note: Contains localized strings for WebKit UI controls. A .pak file is loaded
|
||||
from this folder based on the CefSettings.locale value. Only configured
|
||||
locales need to be distributed. If no locale is configured the default locale
|
||||
of "en-US" will be used. Locale file loading can be disabled completely using
|
||||
CefSettings.pack_loading_disabled. The locales folder path can be customized
|
||||
using CefSettings.locales_dir_path.
|
||||
|
||||
Optional components:
|
||||
|
||||
* Other resources
|
||||
devtools_resources.pak
|
||||
Note: The devtools_resources.pak file contains WebKit inspector resources.
|
||||
Pack file loading can be disabled completely using CefSettings.
|
||||
pack_loading_disabled. The resources directory path can be customized using
|
||||
CefSettings.resources_dir_path.
|
||||
|
||||
* FFmpeg audio and video support
|
||||
avcodec-54.dll
|
||||
avformat-54.dll
|
||||
|
@ -278,7 +278,7 @@ if platform == 'windows':
|
||||
copy_files(os.path.join(script_dir, 'distrib/win/*.dll'), dst_dir, options.quiet)
|
||||
copy_files(os.path.join(cef_dir, 'Debug/*.dll'), dst_dir, options.quiet)
|
||||
copy_file(os.path.join(cef_dir, 'Debug/cefclient.exe'), dst_dir, options.quiet)
|
||||
copy_file(os.path.join(cef_dir, 'Debug/chrome.pak'), dst_dir, options.quiet)
|
||||
copy_file(os.path.join(cef_dir, 'Debug/devtools_resources.pak'), dst_dir, options.quiet)
|
||||
copy_dir(os.path.join(cef_dir, 'Debug/locales'), os.path.join(dst_dir, 'locales'), \
|
||||
options.quiet)
|
||||
|
||||
@ -296,7 +296,7 @@ if platform == 'windows':
|
||||
copy_files(os.path.join(script_dir, 'distrib/win/*.dll'), dst_dir, options.quiet)
|
||||
copy_files(os.path.join(cef_dir, 'Release/*.dll'), dst_dir, options.quiet)
|
||||
copy_file(os.path.join(cef_dir, 'Release/cefclient.exe'), dst_dir, options.quiet)
|
||||
copy_file(os.path.join(cef_dir, 'Release/chrome.pak'), dst_dir, options.quiet)
|
||||
copy_file(os.path.join(cef_dir, 'Release/devtools_resources.pak'), dst_dir, options.quiet)
|
||||
copy_dir(os.path.join(cef_dir, 'Release/locales'), os.path.join(dst_dir, 'locales'), \
|
||||
options.quiet)
|
||||
|
||||
@ -371,6 +371,7 @@ elif platform == 'macosx':
|
||||
make_dir(dst_dir, options.quiet)
|
||||
copy_files(os.path.join(cef_dir, '../third_party/WebKit/Source/WebCore/Resources/*.*'), dst_dir, options.quiet)
|
||||
copy_file(os.path.join(cef_dir, '../xcodebuild/Release/cefclient.app/Contents/Resources/chrome.pak'), dst_dir, options.quiet)
|
||||
copy_file(os.path.join(cef_dir, '../xcodebuild/Release/cefclient.app/Contents/Resources/devtools_resources.pak'), dst_dir, options.quiet)
|
||||
copy_files(os.path.join(cef_dir, '../xcodebuild/Release/cefclient.app/Contents/Resources/*.lproj'), dst_dir, options.quiet)
|
||||
remove_dir(os.path.join(dst_dir, 'English.lproj'))
|
||||
|
||||
@ -404,6 +405,7 @@ elif platform == 'linux':
|
||||
copy_dir(os.path.join(linux_build_dir, 'Debug/lib.target'), os.path.join(dst_dir, 'lib.target'), options.quiet)
|
||||
copy_file(os.path.join(linux_build_dir, 'Debug/cefclient'), dst_dir, options.quiet)
|
||||
copy_file(os.path.join(linux_build_dir, 'Debug/chrome.pak'), dst_dir, options.quiet)
|
||||
copy_file(os.path.join(linux_build_dir, 'Debug/devtools_resources.pak'), dst_dir, options.quiet)
|
||||
copy_dir(os.path.join(linux_build_dir, 'Debug/locales'), os.path.join(dst_dir, 'locales'), options.quiet)
|
||||
|
||||
else:
|
||||
@ -416,6 +418,7 @@ elif platform == 'linux':
|
||||
copy_dir(os.path.join(linux_build_dir, 'Release/lib.target'), os.path.join(dst_dir, 'lib.target'), options.quiet)
|
||||
copy_file(os.path.join(linux_build_dir, 'Release/cefclient'), dst_dir, options.quiet)
|
||||
copy_file(os.path.join(linux_build_dir, 'Release/chrome.pak'), dst_dir, options.quiet)
|
||||
copy_file(os.path.join(linux_build_dir, 'Release/devtools_resources.pak'), dst_dir, options.quiet)
|
||||
copy_dir(os.path.join(linux_build_dir, 'Release/locales'), os.path.join(dst_dir, 'locales'), options.quiet)
|
||||
|
||||
else:
|
||||
|
Loading…
x
Reference in New Issue
Block a user