Commit e273472a authored by Henrique Nakashima's avatar Henrique Nakashima Committed by Commit Bot

Create chrome/browser/version to modularize ChromeVersionInfo

Move ChromeVersionInfo and ChromeVersionConstants into it.

Leave a ChromeVersionInfo in the .chrome.browser package and in the
chrome_java build target not to break downstream.

Bug: 1131982
Change-Id: Iea505fc24b46abbadcc45b0aa94ebc1d95663cc0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2429444
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: default avatarYaron Friedman <yfriedman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#812786}
parent cc8e0c49
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
import("//build/android/resource_sizes.gni") import("//build/android/resource_sizes.gni")
import("//build/config/android/config.gni") import("//build/config/android/config.gni")
import("//build/config/android/rules.gni") import("//build/config/android/rules.gni")
import("//build/config/chrome_build.gni") # For branding_file_path.
import("//build/config/python.gni") import("//build/config/python.gni")
import("//build/util/process_version.gni") import("//build/util/process_version.gni")
import("//build/util/version.gni") import("//build/util/version.gni")
...@@ -77,7 +76,6 @@ trichrome_library_32_android_manifest = ...@@ -77,7 +76,6 @@ trichrome_library_32_android_manifest =
"$target_gen_dir/trichrome_library_32_apk/AndroidManifest.xml" "$target_gen_dir/trichrome_library_32_apk/AndroidManifest.xml"
app_hooks_impl = "java/src/org/chromium/chrome/browser/AppHooksImpl.java" app_hooks_impl = "java/src/org/chromium/chrome/browser/AppHooksImpl.java"
_chrome_version_java_file = "$target_gen_dir/templates/org/chromium/chrome/browser/ChromeVersionConstants.java"
# Exclude it from JNI registration if VR is not enabled. # Exclude it from JNI registration if VR is not enabled.
chrome_jni_sources_exclusions = [] chrome_jni_sources_exclusions = []
...@@ -355,6 +353,7 @@ android_library("chrome_java") { ...@@ -355,6 +353,7 @@ android_library("chrome_java") {
"//chrome/browser/ui/messages/android:java", "//chrome/browser/ui/messages/android:java",
"//chrome/browser/user_education:java", "//chrome/browser/user_education:java",
"//chrome/browser/util:java", "//chrome/browser/util:java",
"//chrome/browser/version:java",
"//chrome/browser/video_tutorials:factory_java", "//chrome/browser/video_tutorials:factory_java",
"//chrome/browser/video_tutorials:java", "//chrome/browser/video_tutorials:java",
"//chrome/browser/webauthn/android:java", "//chrome/browser/webauthn/android:java",
...@@ -921,13 +920,6 @@ junit_binary("chrome_junit_tests") { ...@@ -921,13 +920,6 @@ junit_binary("chrome_junit_tests") {
package_name = chrome_public_manifest_package package_name = chrome_public_manifest_package
} }
process_version("chrome_version_constants") {
process_only = true
template_file = "java/ChromeVersionConstants.java.version"
sources = [ branding_file_path ]
output = _chrome_version_java_file
}
# Files used for both chrome tests and VR/AR and autofill_assistant tests # Files used for both chrome tests and VR/AR and autofill_assistant tests
android_library("chrome_test_util_java") { android_library("chrome_test_util_java") {
testonly = true testonly = true
...@@ -2053,6 +2045,7 @@ android_library("base_monochrome_module_java") { ...@@ -2053,6 +2045,7 @@ android_library("base_monochrome_module_java") {
":base_module_java", ":base_module_java",
"//android_webview:android_webview_java", "//android_webview:android_webview_java",
"//base:base_java", "//base:base_java",
"//chrome/browser/version:java",
"//components/version_info/android:version_constants_java", "//components/version_info/android:version_constants_java",
] ]
} }
...@@ -2063,15 +2056,12 @@ android_library("base_module_java") { ...@@ -2063,15 +2056,12 @@ android_library("base_module_java") {
sources = [ sources = [
"java/src/org/chromium/chrome/browser/base/SplitChromeApplication.java", "java/src/org/chromium/chrome/browser/base/SplitChromeApplication.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatApplication.java", "java/src/org/chromium/chrome/browser/base/SplitCompatApplication.java",
_chrome_version_java_file,
] ]
deps = [ deps = [
":chrome_base_module_resources", ":chrome_base_module_resources",
":chrome_version_constants",
"//base:base_java", "//base:base_java",
"//components/embedder_support/android:application_java", "//components/embedder_support/android:application_java",
"//components/module_installer/android:module_installer_java", "//components/module_installer/android:module_installer_java",
"//components/version_info/android:version_constants_java",
"//third_party/android_deps:androidx_annotation_annotation_java", "//third_party/android_deps:androidx_annotation_annotation_java",
"//ui/android:ui_no_recycler_view_java", "//ui/android:ui_no_recycler_view_java",
......
...@@ -24,6 +24,7 @@ include_rules = [ ...@@ -24,6 +24,7 @@ include_rules = [
"+chrome/browser/ui/messages/android", "+chrome/browser/ui/messages/android",
"+chrome/browser/user_education", "+chrome/browser/user_education",
"+chrome/browser/util/android/java", "+chrome/browser/util/android/java",
"+chrome/browser/version",
"+chrome/browser/webauthn/android", "+chrome/browser/webauthn/android",
"+components/browser_ui/android/bottomsheet", "+components/browser_ui/android/bottomsheet",
"+components/browser_ui/banners/android", "+components/browser_ui/banners/android",
......
...@@ -44,6 +44,7 @@ android_library("java") { ...@@ -44,6 +44,7 @@ android_library("java") {
"//chrome/browser/ui/android/favicon:java", "//chrome/browser/ui/android/favicon:java",
"//chrome/browser/ui/messages/android:java", "//chrome/browser/ui/messages/android:java",
"//chrome/browser/util:java", "//chrome/browser/util:java",
"//chrome/browser/version:java",
"//components/autofill/android:autofill_java", "//components/autofill/android:autofill_java",
"//components/browser_ui/android/bottomsheet:java", "//components/browser_ui/android/bottomsheet:java",
"//components/browser_ui/modaldialog/android:java", "//components/browser_ui/modaldialog/android:java",
......
...@@ -79,6 +79,7 @@ android_library("java") { ...@@ -79,6 +79,7 @@ android_library("java") {
"//chrome/browser/tabmodel:java", "//chrome/browser/tabmodel:java",
"//chrome/browser/ui/messages/android:java", "//chrome/browser/ui/messages/android:java",
"//chrome/browser/util:java", "//chrome/browser/util:java",
"//chrome/browser/version:java",
"//components/browser_ui/android/bottomsheet:java", "//components/browser_ui/android/bottomsheet:java",
"//components/browser_ui/widget/android:java", "//components/browser_ui/widget/android:java",
"//components/prefs/android:java", "//components/prefs/android:java",
......
...@@ -4,74 +4,9 @@ ...@@ -4,74 +4,9 @@
package org.chromium.chrome.browser; package org.chromium.chrome.browser;
import org.chromium.components.version_info.Channel;
/** /**
* A utility class for querying information about the current Chrome build. * Temporary class left until references are moved to the new package and build target.
* Intentionally doesn't depend on native so that the data can be accessed before *
* libchrome.so is loaded. * TODO(crbug.com/1131982): Remove this.
*/ */
public class ChromeVersionInfo { public class ChromeVersionInfo extends org.chromium.chrome.browser.version.ChromeVersionInfo {}
/**
* @return Whether this build is a local build.
*/
public static boolean isLocalBuild() {
return ChromeVersionConstants.CHANNEL == Channel.DEFAULT;
}
/**
* @return Whether this build is a canary build.
*/
public static boolean isCanaryBuild() {
return ChromeVersionConstants.CHANNEL == Channel.CANARY;
}
/**
* @return Whether this build is a dev build.
*/
public static boolean isDevBuild() {
return ChromeVersionConstants.CHANNEL == Channel.DEV;
}
/**
* @return Whether this build is a beta build.
*/
public static boolean isBetaBuild() {
return ChromeVersionConstants.CHANNEL == Channel.BETA;
}
/**
* @return Whether this build is a stable build.
*/
public static boolean isStableBuild() {
return ChromeVersionConstants.CHANNEL == Channel.STABLE;
}
/**
* @return Whether this is an official (i.e. Google Chrome) build.
*/
public static boolean isOfficialBuild() {
return ChromeVersionConstants.IS_OFFICIAL_BUILD;
}
/**
* @return The version number.
*/
public static String getProductVersion() {
return ChromeVersionConstants.PRODUCT_VERSION;
}
/**
* @return The major version number.
*/
public static int getProductMajorVersion() {
return ChromeVersionConstants.PRODUCT_MAJOR_VERSION;
}
/**
* @return The build number.
*/
public static int getBuildVersion() {
return ChromeVersionConstants.PRODUCT_BUILD_VERSION;
}
}
...@@ -10,8 +10,7 @@ import com.android.webview.chromium.MonochromeLibraryPreloader; ...@@ -10,8 +10,7 @@ import com.android.webview.chromium.MonochromeLibraryPreloader;
import org.chromium.android_webview.nonembedded.WebViewApkApplication; import org.chromium.android_webview.nonembedded.WebViewApkApplication;
import org.chromium.base.library_loader.LibraryLoader; import org.chromium.base.library_loader.LibraryLoader;
import org.chromium.chrome.browser.ChromeVersionConstants; import org.chromium.chrome.browser.version.ChromeVersionInfo;
import org.chromium.components.version_info.Channel;
/** /**
* Application class to use for Monochrome when //chrome code is in an isolated split. See {@link * Application class to use for Monochrome when //chrome code is in an isolated split. See {@link
...@@ -30,7 +29,7 @@ public class SplitMonochromeApplication extends SplitChromeApplication { ...@@ -30,7 +29,7 @@ public class SplitMonochromeApplication extends SplitChromeApplication {
super.onCreate(); super.onCreate();
// TODO(crbug.com/1126301): This matches logic in MonochromeApplication.java. // TODO(crbug.com/1126301): This matches logic in MonochromeApplication.java.
// Deduplicate if chrome split launches. // Deduplicate if chrome split launches.
if (ChromeVersionConstants.CHANNEL != Channel.STABLE && isWebViewProcess()) { if (!ChromeVersionInfo.isStableBuild() && isWebViewProcess()) {
WebViewApkApplication.postDeveloperUiLauncherIconTask(); WebViewApkApplication.postDeveloperUiLauncherIconTask();
} }
} }
......
...@@ -20,6 +20,7 @@ include_rules = [ ...@@ -20,6 +20,7 @@ include_rules = [
"+chrome/browser/preferences/android", "+chrome/browser/preferences/android",
"+chrome/browser/profiles/android/jni_headers", "+chrome/browser/profiles/android/jni_headers",
"+chrome/browser/util/android", "+chrome/browser/util/android",
"+chrome/browser/version",
"+chrome/browser/video_tutorials", "+chrome/browser/video_tutorials",
"+chrome/credential_provider/common", "+chrome/credential_provider/common",
"+chrome/grit", "+chrome/grit",
......
# Copyright 2020 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.
import("//build/config/android/rules.gni")
import("//build/config/chrome_build.gni") # For branding_file_path.
import("//build/util/process_version.gni")
_chrome_version_java_file = "$target_gen_dir/templates/org/chromium/chrome/browser/version/ChromeVersionConstants.java"
android_library("java") {
deps = [
":chrome_version_constants",
"//components/version_info/android:version_constants_java",
]
sources = [
"java/src/org/chromium/chrome/browser/version/ChromeVersionInfo.java",
_chrome_version_java_file,
]
}
process_version("chrome_version_constants") {
process_only = true
template_file = "java/ChromeVersionConstants.java.version"
sources = [ branding_file_path ]
output = _chrome_version_java_file
}
file://chrome/android/OWNERS
# COMPONENT: Build
# TEAM: chrome-android-app@chromium.org
# OS: Android
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// 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.
package org.chromium.chrome.browser; package org.chromium.chrome.browser.version;
import org.chromium.components.version_info.VersionConstants; import org.chromium.components.version_info.VersionConstants;
......
// 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.
package org.chromium.chrome.browser.version;
import org.chromium.components.version_info.Channel;
/**
* A utility class for querying information about the current Chrome build.
* Intentionally doesn't depend on native so that the data can be accessed before
* libchrome.so is loaded.
*/
public class ChromeVersionInfo {
/**
* @return Whether this build is a local build.
*/
public static boolean isLocalBuild() {
return ChromeVersionConstants.CHANNEL == Channel.DEFAULT;
}
/**
* @return Whether this build is a canary build.
*/
public static boolean isCanaryBuild() {
return ChromeVersionConstants.CHANNEL == Channel.CANARY;
}
/**
* @return Whether this build is a dev build.
*/
public static boolean isDevBuild() {
return ChromeVersionConstants.CHANNEL == Channel.DEV;
}
/**
* @return Whether this build is a beta build.
*/
public static boolean isBetaBuild() {
return ChromeVersionConstants.CHANNEL == Channel.BETA;
}
/**
* @return Whether this build is a stable build.
*/
public static boolean isStableBuild() {
return ChromeVersionConstants.CHANNEL == Channel.STABLE;
}
/**
* @return Whether this is an official (i.e. Google Chrome) build.
*/
public static boolean isOfficialBuild() {
return ChromeVersionConstants.IS_OFFICIAL_BUILD;
}
/**
* @return The version number.
*/
public static String getProductVersion() {
return ChromeVersionConstants.PRODUCT_VERSION;
}
/**
* @return The major version number.
*/
public static int getProductMajorVersion() {
return ChromeVersionConstants.PRODUCT_MAJOR_VERSION;
}
/**
* @return The build number.
*/
public static int getBuildVersion() {
return ChromeVersionConstants.PRODUCT_BUILD_VERSION;
}
}
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