Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(695)

Side by Side Diff: chrome/android/webapk/shell_apk/BUILD.gn

Issue 2724543003: Reland of Add integration tests for WebAPKs (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkIntegrationTest.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/android/rules.gni") 5 import("//build/config/android/rules.gni")
6 import("shell_apk_version.gni") 6 import("shell_apk_version.gni")
7 7
8 declare_args() { 8 declare_args() {
9 # The origin URL of the WebAPK. Used to generate a unique package name for
10 # WebAPK. Example: "foo.com"
11 webapk_manifest_package_origin = "template"
12
13 # The browser that the WebAPK will be bound to. 9 # The browser that the WebAPK will be bound to.
14 webapk_runtime_host = "com.google.android.apps.chrome" 10 webapk_runtime_host = "com.google.android.apps.chrome"
15 11
16 # The Url of the Web Manifest file. 12 # The Url of the Web Manifest file.
17 webapk_web_manifest_url = "https://www.template.com/manifest.json" 13 webapk_web_manifest_url = "https://www.template.com/manifest.json"
18 14
19 # Murmur2 hash of the homescreen icon. The hash should be of the icon as it is 15 # Murmur2 hash of the homescreen icon. The hash should be of the icon as it is
20 # available from the web. The icon bytes should not be transformed (e.g. 16 # available from the web. The icon bytes should not be transformed (e.g.
21 # decoded / encoded) prior to taking the hash. 17 # decoded / encoded) prior to taking the hash.
22 webapk_icon_murmur2_hash = "0" 18 webapk_icon_murmur2_hash = "0"
(...skipping 18 matching lines...) Expand all
41 # Path part of |webapk_scope_url|. 37 # Path part of |webapk_scope_url|.
42 webapk_scope_url_path = "/" 38 webapk_scope_url_path = "/"
43 39
44 # Android version code for the WebAPK. 40 # Android version code for the WebAPK.
45 webapk_version_code = "1" 41 webapk_version_code = "1"
46 42
47 # Android version name for the WebAPK. 43 # Android version name for the WebAPK.
48 webapk_version_name = "1.0" 44 webapk_version_name = "1.0"
49 } 45 }
50 46
51 shell_apk_manifest_package =
52 "org.chromium.webapk.$webapk_manifest_package_origin"
53
54 shell_apk_manifest = "$target_gen_dir/shell_apk_manifest/AndroidManifest.xml" 47 shell_apk_manifest = "$target_gen_dir/shell_apk_manifest/AndroidManifest.xml"
48 shell_apk_manifest_javatests =
49 "$target_gen_dir/shell_apk_manifest_javatests/AndroidManifest.xml"
55 50
56 jinja_template("shell_apk_manifest") { 51 jinja_template("shell_apk_manifest") {
57 input = "AndroidManifest.xml" 52 input = "AndroidManifest.xml"
58 output = shell_apk_manifest 53 output = shell_apk_manifest
59 54
60 variables = [ 55 variables = [
61 "shell_apk_version=$shell_apk_version", 56 "shell_apk_version=$shell_apk_version",
62 "manifest_package=$shell_apk_manifest_package", 57 "manifest_package=org.chromium.webapk",
63 "runtime_host=$webapk_runtime_host", 58 "runtime_host=$webapk_runtime_host",
64 "start_url=$webapk_start_url", 59 "start_url=$webapk_start_url",
65 "name=$webapk_name", 60 "name=$webapk_name",
66 "short_name=$webapk_short_name", 61 "short_name=$webapk_short_name",
67 "scope_url=$webapk_scope_url", 62 "scope_url=$webapk_scope_url",
68 "display_mode=$webapk_display_mode", 63 "display_mode=$webapk_display_mode",
69 "orientation=$webapk_orientation", 64 "orientation=$webapk_orientation",
70 "theme_color=$webapk_theme_color", 65 "theme_color=$webapk_theme_color",
71 "background_color=$webapk_background_color", 66 "background_color=$webapk_background_color",
72 "icon_urls_and_icon_murmur2_hashes=$webapk_icon_urls_and_icon_murmur2_hashes ", 67 "icon_urls_and_icon_murmur2_hashes=$webapk_icon_urls_and_icon_murmur2_hashes ",
73 "scope_url_scheme=$webapk_scope_url_scheme", 68 "scope_url_scheme=$webapk_scope_url_scheme",
74 "scope_url_host=$webapk_scope_url_host", 69 "scope_url_host=$webapk_scope_url_host",
75 "scope_url_path=$webapk_scope_url_path", 70 "scope_url_path=$webapk_scope_url_path",
76 "web_manifest_url=$webapk_web_manifest_url", 71 "web_manifest_url=$webapk_web_manifest_url",
77 "version_code=$webapk_version_code", 72 "version_code=$webapk_version_code",
78 "version_name=$webapk_version_name", 73 "version_name=$webapk_version_name",
79 ] 74 ]
80 } 75 }
81 76
77 # Manifest for instrumentation tests. Cannot be customized via GN args.
78 jinja_template("shell_apk_manifest_javatests") {
79 input = "AndroidManifest.xml"
80 output = shell_apk_manifest_javatests
81
82 variables = [
83 "shell_apk_version=$shell_apk_version",
84 "manifest_package=org.chromium.webapk.test",
85 "runtime_host=org.chromium.chrome",
86 "start_url=https://www.template.com/home_page",
87 "name=Test",
88 "short_name=Test",
89 "scope_url=https://www.template.com",
90 "display_mode=standalone",
91 "orientation=portrait",
92 "theme_color=2147483648L", # HostBrowserLauncher#MANIFEST_COLOR_INVALID_OR_ MISSING
93 "background_color=2147483648L", # HostBrowserLauncher#MANIFEST_COLOR_INVALI D_OR_MISSING
94 "icon_urls_and_icon_murmur2_hashes=",
95 "scope_url_scheme=https",
96 "scope_url_host=template.com",
97 "scope_url_path=/",
98 "web_manifest_url=https://www.template.com/manifest.json",
99 "version_code=1",
100 "version_name=1.0",
101 ]
102 }
103
82 android_resources("shell_apk_resources") { 104 android_resources("shell_apk_resources") {
83 resource_dirs = [ "res" ] 105 resource_dirs = [ "res" ]
84 custom_package = "org.chromium.webapk.shell_apk" 106 custom_package = "org.chromium.webapk.shell_apk"
85 } 107 }
86 108
87 android_library("webapk_java") { 109 android_library("webapk_java") {
88 java_files = [ 110 java_files = [
89 "src/org/chromium/webapk/shell_apk/DexLoader.java", 111 "src/org/chromium/webapk/shell_apk/DexLoader.java",
90 "src/org/chromium/webapk/shell_apk/HostBrowserClassLoader.java", 112 "src/org/chromium/webapk/shell_apk/HostBrowserClassLoader.java",
91 "src/org/chromium/webapk/shell_apk/MainActivity.java", 113 "src/org/chromium/webapk/shell_apk/MainActivity.java",
92 "src/org/chromium/webapk/shell_apk/NotificationSettingsLauncherActivity.java ", 114 "src/org/chromium/webapk/shell_apk/NotificationSettingsLauncherActivity.java ",
93 "src/org/chromium/webapk/shell_apk/WebApkSandboxedProcessService.java", 115 "src/org/chromium/webapk/shell_apk/WebApkSandboxedProcessService.java",
94 "src/org/chromium/webapk/shell_apk/WebApkSandboxedProcessService0.java", 116 "src/org/chromium/webapk/shell_apk/WebApkSandboxedProcessService0.java",
95 "src/org/chromium/webapk/shell_apk/WebApkSandboxedProcessService1.java", 117 "src/org/chromium/webapk/shell_apk/WebApkSandboxedProcessService1.java",
96 "src/org/chromium/webapk/shell_apk/WebApkSandboxedProcessService2.java", 118 "src/org/chromium/webapk/shell_apk/WebApkSandboxedProcessService2.java",
97 "src/org/chromium/webapk/shell_apk/WebApkServiceFactory.java", 119 "src/org/chromium/webapk/shell_apk/WebApkServiceFactory.java",
98 "src/org/chromium/webapk/shell_apk/WebApkUtils.java", 120 "src/org/chromium/webapk/shell_apk/WebApkUtils.java",
99 ] 121 ]
100 deps = [ 122 deps = [
101 ":shell_apk_resources", 123 ":shell_apk_resources",
102 "//chrome/android/webapk/libs/common:common_java", 124 "//chrome/android/webapk/libs/common:common_java",
103 ] 125 ]
104 } 126 }
105 127
128 template("webapk_tmpl") {
129 android_apk(target_name) {
130 forward_variables_from(invoker,
131 [
132 "android_manifest",
133 "android_manifest_dep",
134 "apk_name",
135 ])
136 deps = [
137 ":webapk_java",
138 ]
139 never_incremental = true
140
141 # Force 32 bit mode on 64 bit devices.
142 native_lib_placeholders = [ "libfoo.so" ]
143
144 if (!is_java_debug) {
145 proguard_enabled = true
146 proguard_configs = [
147 "//chrome/android/java/proguard.flags",
148 "//base/android/proguard/chromium_apk.flags",
149 "//base/android/proguard/chromium_code.flags",
150 ]
151 }
152 }
153 }
154
106 # Template for WebAPK. When a WebAPK is generated: 155 # Template for WebAPK. When a WebAPK is generated:
107 # - Android manifest is customized to the website. 156 # - Android manifest is customized to the website.
108 # - App icon is extracted from the website and added to the APK's resources. 157 # - App icon is extracted from the website and added to the APK's resources.
109 android_apk("webapk") { 158 webapk_tmpl("webapk") {
110 android_manifest = shell_apk_manifest 159 android_manifest = shell_apk_manifest
111 android_manifest_dep = ":shell_apk_manifest" 160 android_manifest_dep = ":shell_apk_manifest"
112 apk_name = "WebApk.$webapk_manifest_package_origin" 161 apk_name = "webapk"
113 deps = [ 162 }
114 ":webapk_java", 163
115 ] 164 # WebAPK for instrumentation tests.
116 if (!is_java_debug) { 165 webapk_tmpl("webapk_javatests") {
117 proguard_enabled = true 166 android_manifest = shell_apk_manifest_javatests
118 proguard_configs = [ 167 android_manifest_dep = ":shell_apk_manifest_javatests"
119 "//chrome/android/java/proguard.flags", 168 apk_name = "webapk_javatests"
120 "//base/android/proguard/chromium_apk.flags",
121 "//base/android/proguard/chromium_code.flags",
122 ]
123 }
124 } 169 }
125 170
126 android_library("shell_apk_javatests") { 171 android_library("shell_apk_javatests") {
127 testonly = true 172 testonly = true
128 java_files = 173 java_files =
129 [ "javatests/src/org/chromium/webapk/shell_apk/DexLoaderTest.java" ] 174 [ "javatests/src/org/chromium/webapk/shell_apk/DexLoaderTest.java" ]
130 deps = [ 175 deps = [
131 ":webapk_java", 176 ":webapk_java",
132 "//base:base_java", 177 "//base:base_java",
133 "//base:base_java_test_support", 178 "//base:base_java_test_support",
134 "//chrome/android/webapk/libs/common:common_java", 179 "//chrome/android/webapk/libs/common:common_java",
135 "//content/public/test/android:content_java_test_support", 180 "//content/public/test/android:content_java_test_support",
136 "//third_party/android_support_test_runner:runner_java", 181 "//third_party/android_support_test_runner:runner_java",
137 ] 182 ]
138 srcjar_deps = [ "javatests/dex_optimizer:dex_optimizer_service_aidl" ] 183 srcjar_deps = [ "javatests/dex_optimizer:dex_optimizer_service_aidl" ]
139 } 184 }
140 185
141 junit_binary("webapk_shell_apk_junit_tests") { 186 junit_binary("webapk_shell_apk_junit_tests") {
142 java_files = [ 187 java_files = [
143 "junit/src/org/chromium/webapk/shell_apk/HostBrowserClassLoaderTest.java", 188 "junit/src/org/chromium/webapk/shell_apk/HostBrowserClassLoaderTest.java",
144 "junit/src/org/chromium/webapk/shell_apk/MainActivityTest.java", 189 "junit/src/org/chromium/webapk/shell_apk/MainActivityTest.java",
145 ] 190 ]
146 deps = [ 191 deps = [
147 ":webapk_java", 192 ":webapk_java",
148 "//chrome/android/webapk/libs/common:common_java", 193 "//chrome/android/webapk/libs/common:common_java",
149 "//chrome/android/webapk/test:junit_test_support", 194 "//chrome/android/webapk/test:junit_test_support",
150 ] 195 ]
151 } 196 }
OLDNEW
« no previous file with comments | « chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkIntegrationTest.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698