Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5d190e8a authored by Chandan Kumar's avatar Chandan Kumar
Browse files

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
parent 9f2176d9
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import androidx.test.core.app.ApplicationProvider;
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 @@ public class JSScriptEnginePerfTests {
            @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 @@ public class JSScriptEnginePerfTests {
            @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;
    }