Enforce limits on memory usage for JsIsolate
Checked if the JsIsolate supports being memory capped.
If supported, and enforced restrict max memory.
Test: Added test thet check for using the isolate setting to:
- bypass enforcement
- have unbounded memory isloate
- have bounded memory isolate
Bug: 239719630
Change-Id: Ie9dc4dbcf529e54eec912f66b0ad1da637dcae96
diff --git a/apct-tests/perftests/rubidium/src/android/rubidium/js/JSScriptEnginePerfTests.java b/apct-tests/perftests/rubidium/src/android/rubidium/js/JSScriptEnginePerfTests.java
index 81685cb..33b2bea 100644
--- a/apct-tests/perftests/rubidium/src/android/rubidium/js/JSScriptEnginePerfTests.java
+++ b/apct-tests/perftests/rubidium/src/android/rubidium/js/JSScriptEnginePerfTests.java
@@ -37,6 +37,7 @@
import androidx.test.filters.MediumTest;
import androidx.test.runner.AndroidJUnit4;
+import com.android.adservices.service.js.IsolateSettings;
import com.android.adservices.service.js.JSScriptArgument;
import com.android.adservices.service.js.JSScriptArrayArgument;
import com.android.adservices.service.js.JSScriptEngine;
@@ -314,7 +315,11 @@
@NonNull CountDownLatch resultLatch) {
Objects.requireNonNull(engine);
Objects.requireNonNull(resultLatch);
- ListenableFuture<String> result = engine.evaluate(jsScript, args, functionName);
+ ListenableFuture<String> result = engine.evaluate(
+ jsScript,
+ args,
+ functionName,
+ IsolateSettings.forMaxHeapSizeEnforcementDisabled());
result.addListener(resultLatch::countDown, sExecutorService);
return result;
}
@@ -328,7 +333,12 @@
@NonNull CountDownLatch resultLatch) {
Objects.requireNonNull(engine);
Objects.requireNonNull(resultLatch);
- ListenableFuture<String> result = engine.evaluate(jsScript, wasmScript, args, functionName);
+ ListenableFuture<String> result = engine.evaluate(
+ jsScript,
+ wasmScript,
+ args,
+ functionName,
+ IsolateSettings.forMaxHeapSizeEnforcementDisabled());
result.addListener(resultLatch::countDown, sExecutorService);
return result;
}