Commit e0da0964 authored by newt's avatar newt Committed by Commit bot

Generate ChromeVersionConstants.java at build time.

This allows us to query version information (e.g. the build version,
whether it's an offical build) whether or not the native library is
loaded.

Future work: put channel information in this file too, and delete the
ChromeVersionInfo.init() method.

TBR=mmenke@chromium.org

Review URL: https://codereview.chromium.org/623403002

Cr-Commit-Position: refs/heads/master@{#299195}
parent ff7e802c
...@@ -56,11 +56,11 @@ $(call intermediates-dir-for,GYP,shared)/enums/selection_event_type_java/org/chr ...@@ -56,11 +56,11 @@ $(call intermediates-dir-for,GYP,shared)/enums/selection_event_type_java/org/chr
$(call intermediates-dir-for,GYP,shared)/enums/speech_recognition_error_java/org/chromium/content_public/common/SpeechRecognitionErrorCode.java \ $(call intermediates-dir-for,GYP,shared)/enums/speech_recognition_error_java/org/chromium/content_public/common/SpeechRecognitionErrorCode.java \
$(call intermediates-dir-for,GYP,shared)/enums/top_controls_state_java/org/chromium/content_public/common/TopControlsState.java \ $(call intermediates-dir-for,GYP,shared)/enums/top_controls_state_java/org/chromium/content_public/common/TopControlsState.java \
$(call intermediates-dir-for,GYP,shared)/enums/window_open_disposition_java/org/chromium/ui/WindowOpenDisposition.java \ $(call intermediates-dir-for,GYP,shared)/enums/window_open_disposition_java/org/chromium/ui/WindowOpenDisposition.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/base/ApplicationState.java \ $(call intermediates-dir-for,GYP,shared)/templates/base_java_application_state/org/chromium/base/ApplicationState.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/base/MemoryPressureLevelList.java \ $(call intermediates-dir-for,GYP,shared)/templates/base_java_memory_pressure_level_list/org/chromium/base/MemoryPressureLevelList.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/media/AndroidImageFormat.java \ $(call intermediates-dir-for,GYP,shared)/templates/media_android_imageformat_list/org/chromium/media/AndroidImageFormat.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/net/NetError.java \ $(call intermediates-dir-for,GYP,shared)/templates/net_errors_java/org/chromium/net/NetError.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/ui/base/PageTransitionTypes.java \ $(call intermediates-dir-for,GYP,shared)/templates/page_transition_types_java/org/chromium/ui/base/PageTransitionTypes.java \
# content dependencies on java components that are provided by the system on # content dependencies on java components that are provided by the system on
# android # android
......
...@@ -22,8 +22,8 @@ ...@@ -22,8 +22,8 @@
# #
# The 'sources' entry should only list template file. The template file # The 'sources' entry should only list template file. The template file
# itself should use the 'ClassName.template' format, and will generate # itself should use the 'ClassName.template' format, and will generate
# 'gen/templates/<package-name>/ClassName.java. The files which template # 'gen/templates/<target-name>/<package-name>/ClassName.java. The files which
# dependents on and typically included by the template should be listed # template dependents on and typically included by the template should be listed
# in template_deps variables. Any change to them will force a rebuild of # in template_deps variables. Any change to them will force a rebuild of
# the template, and hence of any source that depends on it. # the template, and hence of any source that depends on it.
# #
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
# Location where all generated Java sources will be placed. # Location where all generated Java sources will be placed.
'variables': { 'variables': {
'include_path%': '<(DEPTH)', 'include_path%': '<(DEPTH)',
'output_dir': '<(SHARED_INTERMEDIATE_DIR)/templates/<(package_name)', 'output_dir': '<(SHARED_INTERMEDIATE_DIR)/templates/<(_target_name)/<(package_name)',
}, },
'direct_dependent_settings': { 'direct_dependent_settings': {
'variables': { 'variables': {
......
...@@ -2,11 +2,10 @@ ...@@ -2,11 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef CHROME_BROWSER_ANDROID_BROWSER_VERSION_H_ package org.chromium.chrome.browser;
#define CHROME_BROWSER_ANDROID_BROWSER_VERSION_H_
#include <jni.h> public class ChromeVersionConstants {
public static final String PRODUCT_NAME = "@PRODUCT_FULLNAME@";
bool RegisterBrowserVersion(JNIEnv* env); public static final String PRODUCT_VERSION = "@MAJOR@.@MINOR@.@BUILD@.@PATCH@";
public static final boolean IS_OFFICIAL_BUILD = @OFFICIAL_BUILD@ == 1;
#endif // CHROME_BROWSER_ANDROID_BROWSER_VERSION_H_ }
...@@ -15,8 +15,6 @@ public class BrowserVersion { ...@@ -15,8 +15,6 @@ public class BrowserVersion {
* This function depends on the native library being loaded; calling it before then will crash. * This function depends on the native library being loaded; calling it before then will crash.
*/ */
public static boolean isOfficialBuild() { public static boolean isOfficialBuild() {
return nativeIsOfficialBuild(); return ChromeVersionConstants.IS_OFFICIAL_BUILD;
} }
private static native boolean nativeIsOfficialBuild();
} }
...@@ -105,4 +105,11 @@ public class ChromeVersionInfo { ...@@ -105,4 +105,11 @@ public class ChromeVersionInfo {
} }
return sChannel; return sChannel;
} }
/**
* @return Whether this is an official (i.e. Google Chrome) build.
*/
public static boolean isOfficialBuild() {
return ChromeVersionConstants.IS_OFFICIAL_BUILD;
}
} }
\ No newline at end of file
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/android/browser_version.h"
#include "chrome/common/chrome_version_info.h"
#include "jni/BrowserVersion_jni.h"
static jboolean IsOfficialBuild(JNIEnv* env, jclass /* clazz */) {
return chrome::VersionInfo().IsOfficialBuild();
}
bool RegisterBrowserVersion(JNIEnv* env) {
return RegisterNativesImpl(env);
}
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
#include "chrome/browser/android/accessibility_util.h" #include "chrome/browser/android/accessibility_util.h"
#include "chrome/browser/android/banners/app_banner_manager.h" #include "chrome/browser/android/banners/app_banner_manager.h"
#include "chrome/browser/android/bookmarks/bookmarks_bridge.h" #include "chrome/browser/android/bookmarks/bookmarks_bridge.h"
#include "chrome/browser/android/browser_version.h"
#include "chrome/browser/android/chrome_web_contents_delegate_android.h" #include "chrome/browser/android/chrome_web_contents_delegate_android.h"
#include "chrome/browser/android/chromium_application.h" #include "chrome/browser/android/chromium_application.h"
#include "chrome/browser/android/content_view_util.h" #include "chrome/browser/android/content_view_util.h"
...@@ -120,7 +119,6 @@ static base::android::RegistrationMethod kChromeRegisteredMethods[] = { ...@@ -120,7 +119,6 @@ static base::android::RegistrationMethod kChromeRegisteredMethods[] = {
autofill::AutofillPopupViewAndroid::RegisterAutofillPopupViewAndroid }, autofill::AutofillPopupViewAndroid::RegisterAutofillPopupViewAndroid },
{ "AutoLoginDelegate", AutoLoginInfoBarDelegateAndroid::Register }, { "AutoLoginDelegate", AutoLoginInfoBarDelegateAndroid::Register },
{ "BookmarksBridge", BookmarksBridge::RegisterBookmarksBridge }, { "BookmarksBridge", BookmarksBridge::RegisterBookmarksBridge },
{ "BrowserVersion", RegisterBrowserVersion },
{ "CertificateViewer", RegisterCertificateViewer }, { "CertificateViewer", RegisterCertificateViewer },
{ "ChromeBrowserProvider", { "ChromeBrowserProvider",
ChromeBrowserProvider::RegisterChromeBrowserProvider }, ChromeBrowserProvider::RegisterChromeBrowserProvider },
......
...@@ -584,6 +584,7 @@ ...@@ -584,6 +584,7 @@
'app_banner_metrics_ids_java', 'app_banner_metrics_ids_java',
'chrome_resources.gyp:chrome_strings', 'chrome_resources.gyp:chrome_strings',
'chrome_strings_grd', 'chrome_strings_grd',
'chrome_version_java',
'profile_account_management_metrics_java', 'profile_account_management_metrics_java',
'page_info_connection_type_java', 'page_info_connection_type_java',
'profile_sync_service_model_type_selection_java', 'profile_sync_service_model_type_selection_java',
......
...@@ -51,5 +51,58 @@ ...@@ -51,5 +51,58 @@
], ],
}, },
}, },
{
'target_name': 'chrome_version_java',
'type': 'none',
'variables': {
'template_input_path': 'android/java/ChromeVersionConstants.java.version',
'version_path': 'VERSION',
'version_py_path': '<(DEPTH)/build/util/version.py',
'output_path': '<(SHARED_INTERMEDIATE_DIR)/templates/<(_target_name)/org/chromium/chrome/browser/ChromeVersionConstants.java',
'conditions': [
['branding == "Chrome"', {
'branding_path': 'app/theme/google_chrome/BRANDING',
}, {
'branding_path': 'app/theme/chromium/BRANDING',
}],
],
},
'direct_dependent_settings': {
'variables': {
# Ensure that the output directory is used in the class path
# when building targets that depend on this one.
'generated_src_dirs': [
'<(SHARED_INTERMEDIATE_DIR)/templates/<(_target_name)',
],
# Ensure dependents are rebuilt when the generated Java file changes.
'additional_input_paths': [
'<(output_path)',
],
},
},
'actions': [
{
'action_name': 'chrome_version_java_template',
'inputs': [
'<(template_input_path)',
'<(version_path)',
'<(branding_path)',
'<(version_py_path)',
],
'outputs': [
'<(output_path)',
],
'action': [
'python',
'<(version_py_path)',
'-f', '<(version_path)',
'-f', '<(branding_path)',
'<(template_input_path)',
'<(output_path)',
],
},
],
},
], ],
} }
...@@ -31,8 +31,6 @@ ...@@ -31,8 +31,6 @@
'browser/android/bookmarks/bookmarks_bridge.h', 'browser/android/bookmarks/bookmarks_bridge.h',
'browser/android/bookmarks/partner_bookmarks_shim.cc', 'browser/android/bookmarks/partner_bookmarks_shim.cc',
'browser/android/bookmarks/partner_bookmarks_shim.h', 'browser/android/bookmarks/partner_bookmarks_shim.h',
'browser/android/browser_version.cc',
'browser/android/browser_version.h',
'browser/android/chrome_jni_registrar.cc', 'browser/android/chrome_jni_registrar.cc',
'browser/android/chrome_jni_registrar.h', 'browser/android/chrome_jni_registrar.h',
'browser/android/chrome_startup_flags.cc', 'browser/android/chrome_startup_flags.cc',
...@@ -2710,7 +2708,6 @@ ...@@ -2710,7 +2708,6 @@
'android/java/src/org/chromium/chrome/browser/autofill/AutofillPopupBridge.java', 'android/java/src/org/chromium/chrome/browser/autofill/AutofillPopupBridge.java',
'android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java', 'android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java',
'android/java/src/org/chromium/chrome/browser/BookmarksBridge.java', 'android/java/src/org/chromium/chrome/browser/BookmarksBridge.java',
'android/java/src/org/chromium/chrome/browser/BrowserVersion.java',
'android/java/src/org/chromium/chrome/browser/banners/AppBannerManager.java', 'android/java/src/org/chromium/chrome/browser/banners/AppBannerManager.java',
'android/java/src/org/chromium/chrome/browser/CertificateViewer.java', 'android/java/src/org/chromium/chrome/browser/CertificateViewer.java',
'android/java/src/org/chromium/chrome/browser/ChromiumApplication.java', 'android/java/src/org/chromium/chrome/browser/ChromiumApplication.java',
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
'<(lastchange_path)', '<(lastchange_path)',
], ],
'outputs': [ 'outputs': [
'<(SHARED_INTERMEDIATE_DIR)/templates/org/chromium/cronet/Version.java', '<(SHARED_INTERMEDIATE_DIR)/templates/<(_target_name)/org/chromium/cronet/Version.java',
], ],
'action': [ 'action': [
'python', 'python',
......
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