Commit 22ad405f authored by Nate Fischer's avatar Nate Fischer Committed by Commit Bot

Android: autogenerate Java VizFeatures

No change to logic. This autogenerates VizFeatures.java from the C++
feature definitions using java_cpp_features. This updates
ProductionSupportedFlagList and AwContentsTest to depend on the new
constants.

This rewrites some feature definitions to conform to java_cpp_features's
supported syntaxes.

Fixed: 1132494
Test: autoninja -C out/Default system_webview_apk
Test: run_webview_instrumentation_test_apk -f AwContentsTest.*
Change-Id: Ibf085e45d93beeb323d3bc5ce90eaeb2b1ec8f6a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2432111Reviewed-by: default avatarBo <boliu@chromium.org>
Reviewed-by: default avatarVasiliy Telezhnikov <vasilyt@chromium.org>
Commit-Queue: Nate Fischer <ntfschr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#814777}
parent bb4205e3
...@@ -653,6 +653,7 @@ android_library("common_java") { ...@@ -653,6 +653,7 @@ android_library("common_java") {
"//base:base_java", "//base:base_java",
"//cc/base:cc_base_java", "//cc/base:cc_base_java",
"//components/metrics:metrics_java", "//components/metrics:metrics_java",
"//components/viz:viz_java",
"//gpu/config:config_java", "//gpu/config:config_java",
"//third_party/android_deps:androidx_annotation_annotation_java", "//third_party/android_deps:androidx_annotation_annotation_java",
] ]
......
...@@ -7,6 +7,7 @@ package org.chromium.android_webview.common; ...@@ -7,6 +7,7 @@ package org.chromium.android_webview.common;
import org.chromium.base.BaseSwitches; import org.chromium.base.BaseSwitches;
import org.chromium.cc.base.CcSwitches; import org.chromium.cc.base.CcSwitches;
import org.chromium.components.metrics.MetricsSwitches; import org.chromium.components.metrics.MetricsSwitches;
import org.chromium.components.viz.common.VizFeatures;
import org.chromium.gpu.config.GpuFeatures; import org.chromium.gpu.config.GpuFeatures;
import org.chromium.gpu.config.GpuSwitches; import org.chromium.gpu.config.GpuSwitches;
...@@ -67,7 +68,7 @@ public final class ProductionSupportedFlagList { ...@@ -67,7 +68,7 @@ public final class ProductionSupportedFlagList {
+ "GPU acceleration on unsupported device configurations."), + "GPU acceleration on unsupported device configurations."),
Flag.baseFeature(GpuFeatures.ENABLE_SHARED_IMAGE_FOR_WEBVIEW, Flag.baseFeature(GpuFeatures.ENABLE_SHARED_IMAGE_FOR_WEBVIEW,
"Enables shared images for WebView."), "Enables shared images for WebView."),
Flag.baseFeature("VizForWebView", "Enables Viz for WebView."), Flag.baseFeature(VizFeatures.VIZ_FOR_WEBVIEW, "Enables Viz for WebView."),
Flag.baseFeature(AwFeatures.WEBVIEW_CONNECTIONLESS_SAFE_BROWSING, Flag.baseFeature(AwFeatures.WEBVIEW_CONNECTIONLESS_SAFE_BROWSING,
"Uses GooglePlayService's 'connectionless' APIs for Safe Browsing " "Uses GooglePlayService's 'connectionless' APIs for Safe Browsing "
+ "security checks."), + "security checks."),
......
...@@ -42,6 +42,7 @@ import org.chromium.base.metrics.RecordHistogram; ...@@ -42,6 +42,7 @@ import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.CallbackHelper;
import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Feature;
import org.chromium.components.viz.common.VizFeatures;
import org.chromium.content_public.browser.test.util.TestThreadUtils; import org.chromium.content_public.browser.test.util.TestThreadUtils;
import org.chromium.content_public.common.ContentSwitches; import org.chromium.content_public.common.ContentSwitches;
import org.chromium.content_public.common.ContentUrlConstants; import org.chromium.content_public.common.ContentUrlConstants;
...@@ -877,7 +878,8 @@ public class AwContentsTest { ...@@ -877,7 +878,8 @@ public class AwContentsTest {
@Test @Test
@Feature({"AndroidWebView"}) @Feature({"AndroidWebView"})
@MediumTest @MediumTest
@CommandLineFlags.Add({"enable-features=UseSkiaRenderer", "disable-oop-rasterization"}) @CommandLineFlags.
Add({"enable-features=" + VizFeatures.USE_SKIA_RENDERER, "disable-oop-rasterization"})
public void testHardwareRenderingSmokeTestSkiaRenderer() throws Throwable { public void testHardwareRenderingSmokeTestSkiaRenderer() throws Throwable {
doHardwareRenderingSmokeTest(); doHardwareRenderingSmokeTest();
} }
......
...@@ -190,6 +190,7 @@ instrumentation_test_apk("webview_instrumentation_test_apk") { ...@@ -190,6 +190,7 @@ instrumentation_test_apk("webview_instrumentation_test_apk") {
"//components/variations/android:variations_java", "//components/variations/android:variations_java",
"//components/variations/proto:proto_java", "//components/variations/proto:proto_java",
"//components/version_info/android:version_constants_java", "//components/version_info/android:version_constants_java",
"//components/viz:viz_java",
"//content/public/android:content_java", "//content/public/android:content_java",
"//content/public/test/android:content_java_test_support", "//content/public/test/android:content_java_test_support",
"//mojo/public/java:bindings_java", "//mojo/public/java:bindings_java",
......
...@@ -58,3 +58,18 @@ viz_test("viz_perftests") { ...@@ -58,3 +58,18 @@ viz_test("viz_perftests") {
"//testing:run_perf_test", "//testing:run_perf_test",
] ]
} }
if (is_android) {
java_cpp_features("java_features_srcjar") {
# External code should depend on ":viz_java" instead.
visibility = [ ":*" ]
sources = [ "common/features.cc" ]
template = "common/java/src/org/chromium/components/viz/common/VizFeatures.java.tmpl"
}
android_library("viz_java") {
# Right now, this only includes the Java features. But if we need more Java
# files, they should be added here as necessary.
srcjar_deps = [ ":java_features_srcjar" ]
}
}
...@@ -21,14 +21,15 @@ const base::Feature kForcePreferredIntervalForVideo{ ...@@ -21,14 +21,15 @@ const base::Feature kForcePreferredIntervalForVideo{
"ForcePreferredIntervalForVideo", base::FEATURE_DISABLED_BY_DEFAULT}; "ForcePreferredIntervalForVideo", base::FEATURE_DISABLED_BY_DEFAULT};
// Use the SkiaRenderer. // Use the SkiaRenderer.
const base::Feature kUseSkiaRenderer {
"UseSkiaRenderer",
#if defined(OS_WIN) || \ #if defined(OS_WIN) || \
(defined(OS_LINUX) && !(defined(OS_CHROMEOS) || BUILDFLAG(IS_CHROMECAST))) (defined(OS_LINUX) && !(defined(OS_CHROMEOS) || BUILDFLAG(IS_CHROMECAST)))
const base::Feature kUseSkiaRenderer{"UseSkiaRenderer", base::FEATURE_ENABLED_BY_DEFAULT
base::FEATURE_ENABLED_BY_DEFAULT};
#else #else
const base::Feature kUseSkiaRenderer{"UseSkiaRenderer", base::FEATURE_DISABLED_BY_DEFAULT
base::FEATURE_DISABLED_BY_DEFAULT};
#endif #endif
};
// Kill-switch to disable de-jelly, even if flags/properties indicate it should // Kill-switch to disable de-jelly, even if flags/properties indicate it should
// be enabled. // be enabled.
...@@ -55,13 +56,14 @@ const base::Feature kVizForWebView{"VizForWebView", ...@@ -55,13 +56,14 @@ const base::Feature kVizForWebView{"VizForWebView",
const base::Feature kVizFrameSubmissionForWebView{ const base::Feature kVizFrameSubmissionForWebView{
"VizFrameSubmissionForWebView", base::FEATURE_DISABLED_BY_DEFAULT}; "VizFrameSubmissionForWebView", base::FEATURE_DISABLED_BY_DEFAULT};
#if defined(OS_ANDROID)
const base::Feature kUsePreferredIntervalForVideo{ const base::Feature kUsePreferredIntervalForVideo{
"UsePreferredIntervalForVideo", base::FEATURE_DISABLED_BY_DEFAULT}; "UsePreferredIntervalForVideo",
#if defined(OS_ANDROID)
base::FEATURE_DISABLED_BY_DEFAULT
#else #else
const base::Feature kUsePreferredIntervalForVideo{ base::FEATURE_ENABLED_BY_DEFAULT
"UsePreferredIntervalForVideo", base::FEATURE_ENABLED_BY_DEFAULT};
#endif #endif
};
// Whether we should use the real buffers corresponding to overlay candidates in // Whether we should use the real buffers corresponding to overlay candidates in
// order to do a pageflip test rather than allocating test buffers. // order to do a pageflip test rather than allocating test buffers.
......
// 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.
package org.chromium.components.viz.common;
/**
* Constants for the names of Viz Features.
*/
public final class VizFeatures {{
{NATIVE_FEATURES}
// Prevent instantiation.
private VizFeatures() {{}}
}}
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