| # 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", |
| ] |
| } |