Source code
Revision control
Copy as Markdown
Other Tools
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
const { execSync } = require("child_process");
async function pullJitMarkerFiles(context, commands, dirname = "") {
const packageName =
context.options.browser === "firefox"
? context.options.firefox?.android?.package
: context.options.chrome?.android?.package;
if (!packageName) {
context.log.warn("packageName is not defined");
}
const filesDir = `/storage/emulated/0/Android/data/${packageName}/files`;
const destDir = dirname
? `${context.storageManager.directory}/${dirname}`
: `${context.storageManager.directory}`;
try {
const timeoutMs = 15000;
const listing = await commands.android.shell(
`ls ${filesDir}/jit-*.dump ${filesDir}/marker-*.txt 2>/dev/null`
);
for (const file of listing.split("\n").filter(f => f.trim())) {
const fileName = file.trim().split("/").pop();
execSync(`adb pull "${file.trim()}" "${destDir}/${fileName}"`, {
timeout: timeoutMs,
});
}
} catch (e) {
if (e.signal === "SIGTERM") {
context.log.error("adb timed out");
} else {
context.log.error(`Failed to pull jit/marker files: ${e}`);
}
}
}
module.exports = { pullJitMarkerFiles };