diff options
author | alexeypa@chromium.org <alexeypa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-31 23:08:39 +0000 |
---|---|---|
committer | alexeypa@chromium.org <alexeypa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-31 23:08:39 +0000 |
commit | fc877cf756aca680933305c6cb147feecf63113e (patch) | |
tree | bdbeae4a96bd19176573960f14bbd7223cdcf869 /remoting/remoting.gyp | |
parent | 5365e52c633777ee6dde1edba6258fb502ac205d (diff) | |
download | chromium_src-fc877cf756aca680933305c6cb147feecf63113e.zip chromium_src-fc877cf756aca680933305c6cb147feecf63113e.tar.gz chromium_src-fc877cf756aca680933305c6cb147feecf63113e.tar.bz2 |
Localized Chromoting Host on Mac and Linux.
Re-landing r214379. Two additional fixes:
- HOST_PLUGIN_MIME_TYPE is passed unquoted making the code the uses it responsible for stringizing it.
- msvs_cygwin_shell is set to 0 to avoid cygpath changing "remoting_locales\nl.pak" to "remoting_ocales\nl.pak".
This CL implements generation of localizable strings from remoting_strings.grd file. Depending on the platform the localized resources are placed to:
- Mac: localized .string and .pak resources are added to each application bundle under 'Resources/<locale>.lproj'
- Linux: localized .pak files are placed under 'remoting_locales' directory next to the binary locading them.
- Windows: .rc resources are generated from .jinja2 templates and embedded into a relevant binary.
Chrome l10n and i18n APIs are used to retrieve the current locale and RTL flag (Mac & Linux). The it2me plugin sets the locale to match the locale of the browser.
Collateral changes:
- UiString is not used any more.
- Increased width of disconnect window message on Mac.
- The host plugin version is correctly reported on Mac.
- Dialogs use RTL templates in case of RTL languages. No more updating the templates dynamically (Windows).
- remoting_unittests.ResourcesTest now runs on Mac, LInux and Windows.
- '@' is used for variable substitutions by remoting_localize.py.
- HOST_PLUGIN_MIME_TYPE is defined in one place now.
- Deleted unused commong_resources.grd.
Mac installer and preference panel are not localized yet.
BUG=155204
Review URL: https://chromiumcodereview.appspot.com/21059003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214855 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/remoting.gyp')
-rw-r--r-- | remoting/remoting.gyp | 253 |
1 files changed, 192 insertions, 61 deletions
diff --git a/remoting/remoting.gyp b/remoting/remoting.gyp index 890775c..085f4f5 100644 --- a/remoting/remoting.gyp +++ b/remoting/remoting.gyp @@ -43,15 +43,10 @@ '<!(python <(version_py_path) -f <(chrome_version_path) -f <(remoting_version_path) -t "@PATCH@")', 'branding_path': '../remoting/branding_<(branding)', - 'copyright_info': '<!(python <(version_py_path) -f <(branding_path) -t "@COPYRIGHT@")', 'webapp_locale_dir': '<(SHARED_INTERMEDIATE_DIR)/remoting/webapp/_locales', - # Use consistent strings across all platforms. - # These values must match host/plugin/constants.h 'host_plugin_mime_type': 'application/vnd.chromium.remoting-host', - 'host_plugin_description': '<!(python <(version_py_path) -f <(branding_path) -t "@HOST_PLUGIN_DESCRIPTION@")', - 'host_plugin_name': '<!(python <(version_py_path) -f <(branding_path) -t "@HOST_PLUGIN_FILE_NAME@")', 'conditions': [ # Remoting host is supported only on Windows, OSX and Linux (with X11). @@ -100,6 +95,7 @@ 'rdp_desktop_session_clsid': '<!(python tools/uuidgen.py 2)', }], ], + 'remoting_locales': [ 'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'en-GB', 'es', 'es-419', 'et', 'fi', 'fil', 'fr', 'he', 'hi', 'hr', 'hu', 'id', @@ -107,10 +103,15 @@ 'ro', 'ru', 'sk', 'sl', 'sr', 'sv', 'th', 'tr', 'uk', 'vi', 'zh-CN', 'zh-TW', ], + 'remoting_locale_files': [ + # Build the list of .pak files generated from remoting_strings.grd. + '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x ' + '<(PRODUCT_DIR) <(remoting_locales))', + ], 'remoting_webapp_locale_files': [ # Build the list of .json files generated from remoting_strings.grd. '<!@pymod_do_main(remoting_localize --locale_output ' - '"<(webapp_locale_dir)/${json_suffix}/messages.json" ' + '"<(webapp_locale_dir)/@{json_suffix}/messages.json" ' '--print_only <(remoting_locales))', ], 'remoting_webapp_files': [ @@ -269,6 +270,7 @@ 'remoting_base', 'remoting_jingle_glue', 'remoting_protocol', + 'remoting_resources', '../crypto/crypto.gyp:crypto', '../google_apis/google_apis.gyp:google_apis', '../ipc/ipc.gyp:ipc', @@ -429,8 +431,6 @@ 'host/signaling_connector.h', 'host/token_validator_factory_impl.cc', 'host/token_validator_factory_impl.h', - 'host/ui_strings.cc', - 'host/ui_strings.h', 'host/usage_stats_consent.h', 'host/usage_stats_consent_mac.cc', 'host/usage_stats_consent_win.cc', @@ -639,19 +639,23 @@ 'variables': { 'enable_wexit_time_destructors': 1, }, 'product_extension': '<(host_plugin_extension)', 'product_prefix': '<(host_plugin_prefix)', + 'defines': [ + 'HOST_PLUGIN_MIME_TYPE=<(host_plugin_mime_type)', + ], 'dependencies': [ + '../base/base.gyp:base_i18n', '../net/net.gyp:net', '../third_party/npapi/npapi.gyp:npapi', 'remoting_base', 'remoting_host', 'remoting_host_event_logger', 'remoting_host_logging', + 'remoting_infoplist_strings', 'remoting_host_setup_base', 'remoting_jingle_glue', + 'remoting_resources', ], 'sources': [ - '<(SHARED_INTERMEDIATE_DIR)/remoting/core.rc', - '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', 'base/dispatch_win.h', 'host/plugin/host_log_handler.cc', 'host/plugin/host_log_handler.h', @@ -672,7 +676,7 @@ # TODO(maruel): Use INFOPLIST_PREFIX_HEADER to remove the need to # duplicate string once # http://code.google.com/p/gyp/issues/detail?id=243 is fixed. - 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'HOST_PLUGIN_MIME_TYPE="<(host_plugin_mime_type)" HOST_PLUGIN_NAME="<(host_plugin_name)" HOST_PLUGIN_DESCRIPTION="<(host_plugin_description)"', + 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'HOST_PLUGIN_MIME_TYPE="<(host_plugin_mime_type)" VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)"', }, # TODO(mark): Come up with a fancier way to do this. It should # only be necessary to list host_plugin-Info.plist once, not the @@ -683,6 +687,12 @@ 'resources/chromoting16.png', 'resources/chromoting48.png', 'resources/chromoting128.png', + '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(PRODUCT_DIR) <(remoting_locales))', + + # Localized strings for 'Info.plist' + '<!@pymod_do_main(remoting_localize --locale_output ' + '"<(SHARED_INTERMEDIATE_DIR)/remoting/host_plugin_resources/@{json_suffix}.lproj/InfoPlist.strings" ' + '--print_only <(remoting_locales))', ], 'mac_bundle_resources!': [ 'host/plugin/host_plugin-Info.plist', @@ -710,6 +720,8 @@ '<(INTERMEDIATE_DIR)', ], 'sources': [ + '<(SHARED_INTERMEDIATE_DIR)/remoting/core.rc', + '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', 'host/plugin/host_plugin.def', ], 'msvs_settings': { @@ -729,6 +741,103 @@ }], ], }, # end of target 'remoting_host_plugin' + { + 'target_name': 'remoting_infoplist_strings', + 'type': 'none', + 'dependencies': [ + 'remoting_resources', + ], + 'actions': [ + { + 'action_name': 'generate_host_plugin_strings', + 'inputs': [ + '<(remoting_localize_path)', + 'host/plugin/host_plugin-InfoPlist.strings.jinja2', + ], + 'outputs': [ + '<!@pymod_do_main(remoting_localize --locale_output ' + '"<(SHARED_INTERMEDIATE_DIR)/remoting/host_plugin_resources/@{json_suffix}.lproj/InfoPlist.strings" ' + '--print_only <(remoting_locales))', + ], + 'action': [ + 'python', + '<(remoting_localize_path)', + '--locale_dir', '<(webapp_locale_dir)', + '--template', 'host/plugin/host_plugin-InfoPlist.strings.jinja2', + '--locale_output', + '<(SHARED_INTERMEDIATE_DIR)/remoting/host_plugin_resources/@{json_suffix}.lproj/InfoPlist.strings', + '--encoding', 'utf-8', + '<@(remoting_locales)', + ], + }, + { + 'action_name': 'generate_host_strings', + 'inputs': [ + '<(remoting_localize_path)', + 'host/remoting_me2me_host-InfoPlist.strings.jinja2', + ], + 'outputs': [ + '<!@pymod_do_main(remoting_localize --locale_output ' + '"<(SHARED_INTERMEDIATE_DIR)/remoting/host_resources/@{json_suffix}.lproj/InfoPlist.strings" ' + '--print_only <(remoting_locales))', + ], + 'action': [ + 'python', + '<(remoting_localize_path)', + '--locale_dir', '<(webapp_locale_dir)', + '--template', 'host/remoting_me2me_host-InfoPlist.strings.jinja2', + '--locale_output', + '<(SHARED_INTERMEDIATE_DIR)/remoting/host_resources/@{json_suffix}.lproj/InfoPlist.strings', + '--encoding', 'utf-8', + '<@(remoting_locales)', + ], + }, + { + 'action_name': 'generate_preference_pane_strings', + 'inputs': [ + '<(remoting_localize_path)', + 'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2', + ], + 'outputs': [ + '<!@pymod_do_main(remoting_localize --locale_output ' + '"<(SHARED_INTERMEDIATE_DIR)/remoting/preference_pane_resources/@{json_suffix}.lproj/InfoPlist.strings" ' + '--print_only <(remoting_locales))', + ], + 'action': [ + 'python', + '<(remoting_localize_path)', + '--locale_dir', '<(webapp_locale_dir)', + '--template', 'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2', + '--locale_output', + '<(SHARED_INTERMEDIATE_DIR)/remoting/preference_pane_resources/@{json_suffix}.lproj/InfoPlist.strings', + '--encoding', 'utf-8', + '<@(remoting_locales)', + ], + }, + { + 'action_name': 'generate_uninstaller_strings', + 'inputs': [ + '<(remoting_localize_path)', + 'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2', + ], + 'outputs': [ + '<!@pymod_do_main(remoting_localize --locale_output ' + '"<(SHARED_INTERMEDIATE_DIR)/remoting/uninstaller_resources/@{json_suffix}.lproj/InfoPlist.strings" ' + '--print_only <(remoting_locales))', + ], + 'action': [ + 'python', + '<(remoting_localize_path)', + '--locale_dir', '<(webapp_locale_dir)', + '--template', 'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2', + '--locale_output', + '<(SHARED_INTERMEDIATE_DIR)/remoting/uninstaller_resources/@{json_suffix}.lproj/InfoPlist.strings', + '--encoding', 'utf-8', + '<@(remoting_locales)', + ], + }, + ], + }, # end of target 'remoting_infoplist_strings' { 'target_name': 'remoting_native_messaging_host', @@ -846,6 +955,7 @@ 'remoting_host', 'remoting_host_event_logger', 'remoting_host_logging', + 'remoting_infoplist_strings', 'remoting_jingle_glue', 'remoting_me2me_host_static', ], @@ -866,12 +976,18 @@ 'xcode_settings': { 'INFOPLIST_FILE': 'host/remoting_me2me_host-Info.plist', 'INFOPLIST_PREPROCESS': 'YES', - 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(host_bundle_id)" COPYRIGHT_INFO="<(copyright_info)"', + 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(host_bundle_id)"', }, 'mac_bundle_resources': [ 'host/disconnect_window.xib', 'host/remoting_me2me_host.icns', 'host/remoting_me2me_host-Info.plist', + '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(PRODUCT_DIR) <(remoting_locales))', + + # Localized strings for 'Info.plist' + '<!@pymod_do_main(remoting_localize --locale_output ' + '"<(SHARED_INTERMEDIATE_DIR)/remoting/host_resources/@{json_suffix}.lproj/InfoPlist.strings" ' + '--print_only <(remoting_locales))', ], 'mac_bundle_resources!': [ 'host/remoting_me2me_host-Info.plist', @@ -988,10 +1104,10 @@ 'mac_bundle': 1, 'variables': { 'bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_UNINSTALLER_BUNDLE_ID@")', - 'bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_UNINSTALLER_BUNDLE_NAME@")', }, 'dependencies': [ '<(DEPTH)/base/base.gyp:base', + 'remoting_infoplist_strings', ], 'sources': [ 'host/constants_mac.cc', @@ -1004,12 +1120,17 @@ 'xcode_settings': { 'INFOPLIST_FILE': 'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist', 'INFOPLIST_PREPROCESS': 'YES', - 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_NAME="<(bundle_name)" BUNDLE_ID="<(bundle_id)" COPYRIGHT_INFO="<(copyright_info)"', + 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(bundle_id)"', }, 'mac_bundle_resources': [ 'host/installer/mac/uninstaller/remoting_uninstaller.icns', 'host/installer/mac/uninstaller/remoting_uninstaller.xib', 'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist', + + # Localized strings for 'Info.plist' + '<!@pymod_do_main(remoting_localize --locale_output ' + '"<(SHARED_INTERMEDIATE_DIR)/remoting/uninstaller_resources/@{json_suffix}.lproj/InfoPlist.strings" ' + '--print_only <(remoting_locales))', ], 'mac_bundle_resources!': [ 'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist', @@ -1061,7 +1182,6 @@ 'VERSION_SHORT=<(version_short)', 'VERSION_MAJOR=<(version_major)', 'VERSION_MINOR=<(version_minor)', - 'COPYRIGHT_INFO=<(copyright_info)', 'HOST_NAME=<(host_name)', 'HOST_SERVICE_NAME=<(host_service_name)', 'HOST_UNINSTALLER_NAME=<(host_uninstaller_name)', @@ -1109,6 +1229,9 @@ 'defines': [ 'JSON_USE_EXCEPTION=0', ], + 'dependencies': [ + 'remoting_infoplist_strings', + ], 'include_dirs': [ '../third_party/jsoncpp/overrides/include/', '../third_party/jsoncpp/source/include/', @@ -1146,20 +1269,13 @@ }, 'variables': { 'bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_BUNDLE_ID@")', - 'bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_BUNDLE_NAME@")', - # The XML new-line entity splits the label into two lines, which - # is the maximum number of lines allowed by the System Preferences - # applet. - # TODO(lambroslambrou): When these strings are localized, use "\n" - # instead of "
" for linebreaks. - 'pref_pane_icon_label': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_ICON_LABEL@")', }, 'xcode_settings': { 'ARCHS': ['i386', 'x86_64'], 'GCC_ENABLE_OBJC_GC': 'supported', 'INFOPLIST_FILE': 'host/mac/me2me_preference_pane-Info.plist', 'INFOPLIST_PREPROCESS': 'YES', - 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_NAME="<(bundle_name)" BUNDLE_ID="<(bundle_id)" COPYRIGHT_INFO="<(copyright_info)" PREF_PANE_ICON_LABEL="<(pref_pane_icon_label)"', + 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(bundle_id)"', }, 'mac_bundle_resources': [ 'host/mac/me2me_preference_pane.xib', @@ -1167,6 +1283,11 @@ 'host/mac/me2me_preference_pane_disable.xib', 'host/mac/me2me_preference_pane-Info.plist', 'resources/chromoting128.png', + + # Localized strings for 'Info.plist' + '<!@pymod_do_main(remoting_localize --locale_output ' + '"<(SHARED_INTERMEDIATE_DIR)/remoting/preference_pane_resources/@{json_suffix}.lproj/InfoPlist.strings" ' + '--print_only <(remoting_locales))', ], 'mac_bundle_resources!': [ 'host/mac/me2me_preference_pane-Info.plist', @@ -2039,18 +2160,14 @@ 'remoting_resources', 'remoting_host_plugin', ], - 'sources': [ - 'webapp/build-webapp.py', - '<(remoting_version_path)', - '<(chrome_version_path)', - '<@(remoting_webapp_apps_v2_js_files)', - '<@(remoting_webapp_files)', - '<@(remoting_webapp_js_files)', + 'locale_files': [ '<@(remoting_webapp_locale_files)', - '<@(remoting_webapp_patch_files)', ], 'conditions': [ ['enable_remoting_host==1', { + 'locale_files': [ + '<@(remoting_locale_files)', + ], 'variables': { 'plugin_path': '<(PRODUCT_DIR)/<(host_plugin_prefix)remoting_host_plugin.<(host_plugin_extension)', }, @@ -2074,7 +2191,7 @@ '<(remoting_version_path)', '<@(remoting_webapp_files)', '<@(remoting_webapp_js_files)', - '<@(remoting_webapp_locale_files)', + '<@(_locale_files)', ], 'conditions': [ ['enable_remoting_host==1', { @@ -2098,9 +2215,9 @@ '<@(remoting_webapp_files)', '<@(remoting_webapp_js_files)', '--locales', - '<@(remoting_webapp_locale_files)', + '<@(_locale_files)', ], - 'msvs_cygwin_shell': 1, + 'msvs_cygwin_shell': 0, }, ], 'target_conditions': [ @@ -2154,7 +2271,7 @@ '--patches', '<@(remoting_webapp_patch_files)', ], - 'msvs_cygwin_shell': 1, + 'msvs_cygwin_shell': 0, }, ], }], @@ -2169,7 +2286,11 @@ 'grit_resource_ids': 'resources/resource_ids', 'sources': [ 'base/resources_unittest.cc', - 'host/plugin/host_script_object.cc', + 'host/continue_window_mac.mm', + 'host/disconnect_window_mac.mm', + 'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2', + 'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2', + 'host/plugin/host_plugin-InfoPlist.strings.jinja2', 'host/win/core.rc.jinja2', 'host/win/host_messages.mc.jinja2', 'host/win/version.rc.jinja2', @@ -2177,8 +2298,8 @@ 'webapp/client_screen.js', 'webapp/error.js', 'webapp/host_list.js', - 'webapp/host_table_entry.js', 'webapp/host_setup_dialog.js', + 'webapp/host_table_entry.js', 'webapp/main.html', 'webapp/manifest.json', 'webapp/paired_client_manager.js', @@ -2190,7 +2311,6 @@ 'action_name': 'verify_resources', 'inputs': [ 'resources/remoting_strings.grd', - 'resources/common_resources.grd', 'tools/verify_resources.py', '<@(sources)' ], @@ -2202,7 +2322,6 @@ 'tools/verify_resources.py', '-t', '<(PRODUCT_DIR)/remoting_resources_verified.stamp', '-r', 'resources/remoting_strings.grd', - '-r', 'resources/common_resources.grd', '<@(sources)', ], }, @@ -2214,30 +2333,26 @@ 'includes': [ '../build/grit_action.gypi' ], }, { - 'action_name': 'common_resources', + 'action_name': 'copy_locales', 'variables': { - 'grit_grd_file': 'resources/common_resources.grd', + 'copy_output_dir%': '<(PRODUCT_DIR)', }, - 'includes': [ '../build/grit_action.gypi' ], - }, - ], - 'copies': [ - # Copy results to the product directory. - { - 'destination': '<(PRODUCT_DIR)/remoting_locales', - 'files': [ - # Build the list of .pak files generated from remoting_strings.grd. - '<!@pymod_do_main(remoting_localize --locale_output ' - '"<(grit_out_dir)/remoting/resources/${pak_suffix}.pak" ' - '--print_only <(remoting_locales))', + 'inputs': [ + 'tools/build/remoting_copy_locales.py', + '<!@pymod_do_main(remoting_copy_locales -i -p <(OS) -g <(grit_out_dir) <(remoting_locales))' ], - }, - { - 'destination': '<(PRODUCT_DIR)', - 'files': [ - '<(grit_out_dir)/remoting/resources/chrome_remote_desktop.pak', - ] - }, + 'outputs': [ + '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(copy_output_dir) <(remoting_locales))' + ], + 'action': [ + 'python', + 'tools/build/remoting_copy_locales.py', + '-p', '<(OS)', + '-g', '<(grit_out_dir)', + '-x', '<(copy_output_dir)/.', + '<@(remoting_locales)', + ], + } ], 'includes': [ '../build/grit_target.gypi' ], }, # end of target 'remoting_resources' @@ -2291,8 +2406,10 @@ 'base/plugin_thread_task_runner.h', 'base/rate_counter.cc', 'base/rate_counter.h', - 'base/resources.cc', 'base/resources.h', + 'base/resources_linux.cc', + 'base/resources_mac.mm', + 'base/resources_win.cc', 'base/rsa_key_pair.cc', 'base/rsa_key_pair.h', 'base/running_average.cc', @@ -2702,6 +2819,20 @@ ], }, }], + ['OS=="mac"', { + 'mac_bundle': 1, + 'xcode_settings': { + 'INFOPLIST_FILE': 'unittests-Info.plist', + 'INFOPLIST_PREPROCESS': 'YES', + }, + 'mac_bundle_resources': [ + 'unittests-Info.plist', + '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(PRODUCT_DIR) <(remoting_locales))', + ], + 'mac_bundle_resources!': [ + 'unittests-Info.plist', + ], + }], # OS=="mac" ['OS=="mac" or (OS=="linux" and chromeos==0)', { # Javascript unittests are disabled on CrOS because they cause # valgrind and test errors. |