blob: 7116494b0dc56ab09807c81e3888457b23cc35ed [file] [log] [blame]
# Copyright 2019 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
import("//build/util/process_version.gni")
_version_constants_java_file =
"$target_gen_dir/org/chromium/weblayer/WebLayerClientVersionConstants.java"
weblayer_client_manifest =
"$target_gen_dir/weblayer_client_manifest/AndroidManifest.xml"
jinja_template("weblayer_client_manifest") {
input = "AndroidManifest.xml"
output = weblayer_client_manifest
}
android_resources("client_resources") {
sources = [
"res/values-night/colors.xml",
"res/values-night/values.xml",
"res/values-v27/styles.xml",
"res/values-v28/styles.xml",
"res/values/colors.xml",
"res/values/ids.xml",
"res/values/styles.xml",
"res/values/values.xml",
"res/xml/weblayer_file_paths.xml",
]
android_manifest = weblayer_client_manifest
android_manifest_dep = ":weblayer_client_manifest"
}
android_library("java") {
sources = [
"org/chromium/weblayer/ActionModeCallback.java",
"org/chromium/weblayer/ActionModeItemType.java",
"org/chromium/weblayer/BroadcastReceiver.java",
"org/chromium/weblayer/Browser.java",
"org/chromium/weblayer/BrowsingDataType.java",
"org/chromium/weblayer/Callback.java",
"org/chromium/weblayer/CaptureScreenShotCallback.java",
"org/chromium/weblayer/ChildProcessService.java",
"org/chromium/weblayer/ContextMenuParams.java",
"org/chromium/weblayer/CookieChangeCause.java",
"org/chromium/weblayer/CookieChangedCallback.java",
"org/chromium/weblayer/CookieManager.java",
"org/chromium/weblayer/CookieManagerDelegate.java",
"org/chromium/weblayer/CrashReporterCallback.java",
"org/chromium/weblayer/CrashReporterController.java",
"org/chromium/weblayer/DarkModeStrategy.java",
"org/chromium/weblayer/Download.java",
"org/chromium/weblayer/DownloadCallback.java",
"org/chromium/weblayer/DownloadError.java",
"org/chromium/weblayer/DownloadState.java",
"org/chromium/weblayer/ErrorPage.java",
"org/chromium/weblayer/ErrorPageCallback.java",
"org/chromium/weblayer/ExceptionHelper.java",
"org/chromium/weblayer/ExternalIntentInIncognitoCallback.java",
"org/chromium/weblayer/ExternalIntentInIncognitoUserDecision.java",
"org/chromium/weblayer/FaviconCallback.java",
"org/chromium/weblayer/FaviconFetcher.java",
"org/chromium/weblayer/FindInPageCallback.java",
"org/chromium/weblayer/FindInPageController.java",
"org/chromium/weblayer/FullscreenCallback.java",
"org/chromium/weblayer/GoogleAccountAccessTokenFetcher.java",
"org/chromium/weblayer/GoogleAccountServiceType.java",
"org/chromium/weblayer/GoogleAccountsCallback.java",
"org/chromium/weblayer/GoogleAccountsParams.java",
"org/chromium/weblayer/GooglePayDataCallbacksServiceWrapper.java",
"org/chromium/weblayer/ImageDecoderService.java",
"org/chromium/weblayer/LoadError.java",
"org/chromium/weblayer/MediaCaptureCallback.java",
"org/chromium/weblayer/MediaCaptureController.java",
"org/chromium/weblayer/MediaPlaybackBaseService.java",
"org/chromium/weblayer/MediaRouteDialogFragmentEventHandler.java",
"org/chromium/weblayer/MediaSessionService.java",
"org/chromium/weblayer/NavigateParams.java",
"org/chromium/weblayer/Navigation.java",
"org/chromium/weblayer/NavigationCallback.java",
"org/chromium/weblayer/NavigationController.java",
"org/chromium/weblayer/NavigationState.java",
"org/chromium/weblayer/NewTabCallback.java",
"org/chromium/weblayer/NewTabType.java",
"org/chromium/weblayer/ObserverList.java",
"org/chromium/weblayer/OpenUrlCallback.java",
"org/chromium/weblayer/Page.java",
"org/chromium/weblayer/PaymentDetailsUpdateServiceWrapper.java",
"org/chromium/weblayer/PrerenderController.java",
"org/chromium/weblayer/Profile.java",
"org/chromium/weblayer/RemoteFragmentEventHandler.java",
"org/chromium/weblayer/RemoteMediaService.java",
"org/chromium/weblayer/ScrollNotificationType.java",
"org/chromium/weblayer/ScrollOffsetCallback.java",
"org/chromium/weblayer/SettingType.java",
"org/chromium/weblayer/Tab.java",
"org/chromium/weblayer/TabCallback.java",
"org/chromium/weblayer/TabInitializationCallback.java",
"org/chromium/weblayer/TabListCallback.java",
"org/chromium/weblayer/TabManagerDelegate.java",
"org/chromium/weblayer/TabNavigationControllerProxy.java",
"org/chromium/weblayer/TabParams.java",
"org/chromium/weblayer/TabProxy.java",
"org/chromium/weblayer/ThreadCheck.java",
"org/chromium/weblayer/UnsupportedVersionException.java",
"org/chromium/weblayer/UserIdentityCallback.java",
"org/chromium/weblayer/VerifiesOnO.java",
"org/chromium/weblayer/VerifiesOnR.java",
"org/chromium/weblayer/WebEngineDelegate.java",
"org/chromium/weblayer/WebFragmentCreateParams.java",
"org/chromium/weblayer/WebFragmentEventHandler.java",
"org/chromium/weblayer/WebFragmentEventsDelegate.java",
"org/chromium/weblayer/WebFragmentNavigationDelegate.java",
"org/chromium/weblayer/WebFragmentNavigationParams.java",
"org/chromium/weblayer/WebFragmentTabDelegate.java",
"org/chromium/weblayer/WebFragmentTabListDelegate.java",
"org/chromium/weblayer/WebLayer.java",
"org/chromium/weblayer/WebLayerFileProvider.java",
"org/chromium/weblayer/WebMessage.java",
"org/chromium/weblayer/WebMessageCallback.java",
"org/chromium/weblayer/WebMessageReplyProxy.java",
"org/chromium/weblayer/WebMessageReplyProxyProxy.java",
"org/chromium/weblayer/WebViewCompatibilityHelper.java",
_version_constants_java_file,
]
resources_package = "org.chromium.weblayer"
deps = [
":client_resources",
":client_version",
":webengine_interfaces_java",
":weblayer_client_manifest",
"//base:base_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_appcompat_appcompat_java",
"//third_party/androidx:androidx_core_core_java",
"//third_party/androidx:androidx_fragment_fragment_java",
"//third_party/androidx:androidx_lifecycle_lifecycle_common_java",
"//third_party/androidx:androidx_lifecycle_lifecycle_viewmodel_java",
"//weblayer/browser/java:base_module_interfaces_java",
"//weblayer/browser/java:interfaces_java",
]
proguard_configs = [ "proguard.flags" ]
}
dist_aar("client_aar") {
deps = [
":java",
":webengine_java",
":weblayer_client_manifest",
]
# The aar should only include weblayer files. The client will provide the
# support library.
jar_included_patterns = [
"org/chromium/weblayer/*",
"org/chromium/weblayer_private/*",
]
resource_included_patterns = [ "*/weblayer/public/java/*" ]
# R files are excluded because they are not used in the client lib and depend
# on other generated chromium R classes.
jar_excluded_patterns = [
"org/chromium/weblayer/client/R\$*.class",
"org/chromium/weblayer/client/R.class",
]
# dist_aar does not take the manifest from libraries in deps, so we have to
# specify again here.
android_manifest = weblayer_client_manifest
output = "$root_build_dir/WebLayerClient.aar"
}
process_version("client_version") {
process_only = true
template_file =
"org/chromium/weblayer/WebLayerClientVersionConstants.java.version"
output = _version_constants_java_file
sources = [ "//chrome/VERSION" ]
}
android_aidl("webengine_aidl") {
import_include = [
".",
"../../browser/java",
]
sources = [
"org/chromium/webengine/interfaces/IBooleanCallback.aidl",
"org/chromium/webengine/interfaces/ICookieManagerDelegate.aidl",
"org/chromium/webengine/interfaces/INavigationObserverDelegate.aidl",
"org/chromium/webengine/interfaces/INavigationParams.aidl",
"org/chromium/webengine/interfaces/IPostMessageCallback.aidl",
"org/chromium/webengine/interfaces/IStringCallback.aidl",
"org/chromium/webengine/interfaces/ITabCallback.aidl",
"org/chromium/webengine/interfaces/ITabListObserverDelegate.aidl",
"org/chromium/webengine/interfaces/ITabManagerDelegate.aidl",
"org/chromium/webengine/interfaces/ITabNavigationControllerProxy.aidl",
"org/chromium/webengine/interfaces/ITabObserverDelegate.aidl",
"org/chromium/webengine/interfaces/ITabParams.aidl",
"org/chromium/webengine/interfaces/ITabProxy.aidl",
"org/chromium/webengine/interfaces/IWebEngineDelegate.aidl",
"org/chromium/webengine/interfaces/IWebEngineDelegateClient.aidl",
"org/chromium/webengine/interfaces/IWebEngineParams.aidl",
"org/chromium/webengine/interfaces/IWebFragmentEventsDelegate.aidl",
"org/chromium/webengine/interfaces/IWebFragmentEventsDelegateClient.aidl",
"org/chromium/webengine/interfaces/IWebMessageCallback.aidl",
"org/chromium/webengine/interfaces/IWebMessageReplyProxy.aidl",
"org/chromium/webengine/interfaces/IWebSandboxCallback.aidl",
"org/chromium/webengine/interfaces/IWebSandboxService.aidl",
]
}
android_library("webengine_interfaces_java") {
sources = [ "org/chromium/webengine/interfaces/ExceptionType.java" ]
deps = [
"//base:base_java",
"//third_party/androidx:androidx_annotation_annotation_jvm_java",
"//weblayer/browser/java:base_module_interfaces_java",
]
srcjar_deps = [ ":webengine_aidl" ]
}
android_library("webengine_java") {
sources = [
"org/chromium/webengine/CookieManager.java",
"org/chromium/webengine/ExceptionHelper.java",
"org/chromium/webengine/MessageEventListener.java",
"org/chromium/webengine/Navigation.java",
"org/chromium/webengine/NavigationObserver.java",
"org/chromium/webengine/NavigationObserverDelegate.java",
"org/chromium/webengine/RestrictedAPIException.java",
"org/chromium/webengine/Tab.java",
"org/chromium/webengine/TabListObserver.java",
"org/chromium/webengine/TabListObserverDelegate.java",
"org/chromium/webengine/TabManager.java",
"org/chromium/webengine/TabNavigationController.java",
"org/chromium/webengine/TabObserver.java",
"org/chromium/webengine/TabObserverDelegate.java",
"org/chromium/webengine/TabRegistry.java",
"org/chromium/webengine/ThreadCheck.java",
"org/chromium/webengine/WebEngine.java",
"org/chromium/webengine/WebEngineParams.java",
"org/chromium/webengine/WebFragment.java",
"org/chromium/webengine/WebMessageCallback.java",
"org/chromium/webengine/WebMessageReplyProxy.java",
"org/chromium/webengine/WebSandbox.java",
]
resources_package = "org.chromium.webengine"
deps = [
":java",
":webengine_interfaces_java",
"//base:base_java",
"//third_party/android_deps:com_google_guava_listenablefuture_java",
"//third_party/android_deps:guava_android_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_appcompat_appcompat_java",
"//third_party/androidx:androidx_concurrent_concurrent_futures_java",
"//third_party/androidx:androidx_core_core_java",
"//third_party/androidx:androidx_fragment_fragment_java",
"//third_party/androidx:androidx_lifecycle_lifecycle_viewmodel_java",
"//weblayer/browser/java:base_module_interfaces_java",
]
proguard_configs = [ "proguard.flags" ]
}
android_library("service_provider_java") {
testonly = true
resources_package = "org.chromium.weblayer"
sources = [
"org/chromium/weblayer/BrowserInProcessService.java",
"org/chromium/weblayer/BrowserProcessBinder.java",
"org/chromium/weblayer/BrowserSandboxService.java",
]
deps = [
":java",
":webengine_interfaces_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//weblayer/browser/java:base_module_interfaces_java",
]
}