| # Copyright 2022 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/rules.gni") |
| import("//testing/test.gni") |
| |
| group("androidx_javascriptengine") { |
| testonly = true |
| deps = [ ":javascriptengine_test" ] |
| } |
| |
| android_aidl("js_sandbox_aidl") { |
| import_include = [ "src/main/stableAidl" ] |
| sources = [ |
| "src/main/stableAidl/org/chromium/android_webview/js_sandbox/common/IJsSandboxConsoleCallback.aidl", |
| "src/main/stableAidl/org/chromium/android_webview/js_sandbox/common/IJsSandboxIsolate.aidl", |
| "src/main/stableAidl/org/chromium/android_webview/js_sandbox/common/IJsSandboxIsolateCallback.aidl", |
| "src/main/stableAidl/org/chromium/android_webview/js_sandbox/common/IJsSandboxIsolateClient.aidl", |
| "src/main/stableAidl/org/chromium/android_webview/js_sandbox/common/IJsSandboxIsolateSyncCallback.aidl", |
| "src/main/stableAidl/org/chromium/android_webview/js_sandbox/common/IJsSandboxService.aidl", |
| ] |
| } |
| |
| android_library("js_sandbox_aidl_java") { |
| srcjar_deps = [ ":js_sandbox_aidl" ] |
| |
| deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] |
| } |
| |
| android_library("javascriptengine_common_java") { |
| sources = [ |
| "src/main/java/androidx/javascriptengine/common/LengthLimitExceededException.java", |
| "src/main/java/androidx/javascriptengine/common/Utils.java", |
| ] |
| |
| deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] |
| } |
| |
| android_library("javascriptengine_java") { |
| sources = [ |
| "src/main/java/androidx/javascriptengine/CloseGuardHelper.java", |
| "src/main/java/androidx/javascriptengine/DataInputException.java", |
| "src/main/java/androidx/javascriptengine/EnvironmentDeadState.java", |
| "src/main/java/androidx/javascriptengine/EvaluationFailedException.java", |
| "src/main/java/androidx/javascriptengine/EvaluationResultSizeLimitExceededException.java", |
| "src/main/java/androidx/javascriptengine/ExecutionErrorTypes.java", |
| "src/main/java/androidx/javascriptengine/IsolateClosedState.java", |
| "src/main/java/androidx/javascriptengine/IsolateStartupParameters.java", |
| "src/main/java/androidx/javascriptengine/IsolateState.java", |
| "src/main/java/androidx/javascriptengine/IsolateTerminatedException.java", |
| "src/main/java/androidx/javascriptengine/IsolateUsableState.java", |
| "src/main/java/androidx/javascriptengine/JavaScriptConsoleCallback.java", |
| "src/main/java/androidx/javascriptengine/JavaScriptException.java", |
| "src/main/java/androidx/javascriptengine/JavaScriptIsolate.java", |
| "src/main/java/androidx/javascriptengine/JavaScriptSandbox.java", |
| "src/main/java/androidx/javascriptengine/MemoryLimitExceededException.java", |
| "src/main/java/androidx/javascriptengine/SandboxDeadException.java", |
| "src/main/java/androidx/javascriptengine/SandboxUnsupportedException.java", |
| "src/main/java/androidx/javascriptengine/StreamingFailedException.java", |
| "src/main/java/androidx/javascriptengine/TerminationInfo.java", |
| ] |
| |
| deps = [ |
| ":javascriptengine_common_java", |
| ":js_sandbox_aidl_java", |
| "//third_party/android_deps:com_google_code_findbugs_jsr305_java", |
| "//third_party/android_deps:guava_android_java", |
| "//third_party/androidx:androidx_annotation_annotation_java", |
| "//third_party/androidx:androidx_concurrent_concurrent_futures_java", |
| "//third_party/androidx:androidx_core_core_java", |
| ] |
| } |
| |
| instrumentation_test_apk("javascriptengine_test") { |
| apk_name = "WebViewJsSandboxTestAppTest" |
| android_manifest = |
| "//android_webview/js_sandbox/javatests/AndroidManifest.xml" |
| sources = [ "src/androidTest/java/androidx/javascriptengine/WebViewJavaScriptSandboxTest.java" ] |
| deps = [ |
| ":javascriptengine_java", |
| "//third_party/android_deps:guava_android_java", |
| "//third_party/androidx:androidx_core_core_java", |
| "//third_party/androidx:androidx_test_core_java", |
| "//third_party/androidx:androidx_test_ext_junit_java", |
| "//third_party/androidx:androidx_test_runner_java", |
| "//third_party/junit", |
| ] |
| |
| # Tell GN to ignore 'incremental_install' even if the user has it in their GN |
| # args because it's incompatible with 'use_webview_provider'. |
| never_incremental = true |
| use_webview_provider = system_webview_apk_target |
| } |