--- a/devtools/shared/adb/adb-client.js
+++ b/devtools/shared/adb/adb-client.js
@@ -13,62 +13,62 @@
const { AdbSocket } = require("./adb-socket");
const OKAY = 0x59414b4f;
const FAIL = 0x4c494146;
const _sockets = [ ];
// Return buffer, which differs between Gecko versions
-function getBuffer(aPacket) {
- return aPacket.buffer ? aPacket.buffer : aPacket;
+function getBuffer(packet) {
+ return packet.buffer ? packet.buffer : packet;
}
// @param aPacket The packet to get the length from.
// @param aIgnoreResponse True if this packet has no OKAY/FAIL.
// @return A js object { length:...; data:... }
-function unpackPacket(aPacket, aIgnoreResponse) {
- const buffer = getBuffer(aPacket);
+function unpackPacket(packet, ignoreResponse) {
+ const buffer = getBuffer(packet);
console.debug("Len buffer: " + buffer.byteLength);
- if (buffer.byteLength === 4 && !aIgnoreResponse) {
+ if (buffer.byteLength === 4 && !ignoreResponse) {
console.debug("Packet empty");
return { length: 0, data: "" };
}
- const lengthView = new Uint8Array(buffer, aIgnoreResponse ? 0 : 4, 4);
+ const lengthView = new Uint8Array(buffer, ignoreResponse ? 0 : 4, 4);
const decoder = new TextDecoder();
const length = parseInt(decoder.decode(lengthView), 16);
- const text = new Uint8Array(buffer, aIgnoreResponse ? 4 : 8, length);
+ const text = new Uint8Array(buffer, ignoreResponse ? 4 : 8, length);
return { length, data: decoder.decode(text) };
}
// Checks if the response is expected (defaults to OKAY).
// @return true if response equals expected.
-function checkResponse(aPacket, aExpected = OKAY) {
- const buffer = getBuffer(aPacket);
+function checkResponse(packet, expected = OKAY) {
+ const buffer = getBuffer(packet);
const view = new Uint32Array(buffer, 0, 1);
if (view[0] == FAIL) {
console.debug("Response: FAIL");
}
console.debug("view[0] = " + view[0]);
- return view[0] == aExpected;
+ return view[0] == expected;
}
// @param aCommand A protocol-level command as described in
// http://androidxref.com/4.0.4/xref/system/core/adb/OVERVIEW.TXT and
// http://androidxref.com/4.0.4/xref/system/core/adb/SERVICES.TXT
// @return A 8 bit typed array.
-function createRequest(aCommand) {
- let length = aCommand.length.toString(16).toUpperCase();
+function createRequest(command) {
+ let length = command.length.toString(16).toUpperCase();
while (length.length < 4) {
length = "0" + length;
}
const encoder = new TextEncoder();
- console.debug("Created request: " + length + aCommand);
- return encoder.encode(length + aCommand);
+ console.debug("Created request: " + length + command);
+ return encoder.encode(length + command);
}
function close() {
_sockets.forEach(function(s) {
s.close();
});
}
--- a/devtools/shared/adb/adb.js
+++ b/devtools/shared/adb/adb.js
@@ -80,18 +80,18 @@ const ADB = {
process.startHidden = true;
// noShell attribute is 58+
process.noShell = true;
} catch (e) {
}
const params = ["start-server"];
const self = this;
process.runAsync(params, params.length, {
- observe(aSubject, aTopic, aData) {
- switch (aTopic) {
+ observe(subject, topic, data) {
+ switch (topic) {
case "process-finished":
onSuccessfulStart();
break;
case "process-failed":
self.ready = false;
reject();
break;
}
@@ -156,18 +156,18 @@ const ADB = {
if (sync) {
process.run(true, params, params.length);
console.log("adb kill-server: " + process.exitValue);
this.ready = false;
this.didRunInitially = false;
} else {
const self = this;
process.runAsync(params, params.length, {
- observe(aSubject, aTopic, aData) {
- switch (aTopic) {
+ observe(subject, topic, data) {
+ switch (topic) {
case "process-finished":
console.log("adb kill-server: " + process.exitValue);
Services.obs.notifyObservers(null, "adb-killed");
self.ready = false;
self.didRunInitially = false;
break;
case "process-failed":
console.log("adb kill-server failure: " + process.exitValue);
@@ -224,19 +224,19 @@ const ADB = {
ADB.start().then(function() { // try to connect to the new local adb server
// or, spawn a new one
ADB.trackDevices(); // Re-track devices
});
}
}, 2000);
};
- socket.s.ondata = function(aEvent) {
+ socket.s.ondata = function(event) {
console.log("trackDevices ondata");
- const data = aEvent.data;
+ const data = event.data;
console.log("length=" + data.byteLength);
const dec = new TextDecoder();
console.log(dec.decode(new Uint8Array(data)).trim());
// check the OKAY or FAIL on first packet.
if (waitForFirst) {
if (!client.checkResponse(data, OKAY)) {
socket.close();
@@ -252,22 +252,22 @@ const ADB = {
for (const dev in devices) {
devices[dev] = false;
EventEmitter.emit(ADB, "device-disconnected", dev);
}
} else {
// One line per device, each line being $DEVICE\t(offline|device)
const lines = packet.data.split("\n");
const newDev = {};
- lines.forEach(function(aLine) {
- if (aLine.length == 0) {
+ lines.forEach(function(line) {
+ if (line.length == 0) {
return;
}
- const [dev, status] = aLine.split("\t");
+ const [dev, status] = line.split("\t");
newDev[dev] = status !== "offline";
});
// Check which device changed state.
for (const dev in newDev) {
if (devices[dev] != newDev[dev]) {
if (dev in devices || newDev[dev]) {
const topic = newDev[dev] ? "device-connected"
: "device-disconnected";
@@ -283,34 +283,34 @@ const ADB = {
// Sends back an array of device names.
listDevices: function adb_listDevices() {
console.log("listDevices");
return this.runCommand("host:devices").then(
function onSuccess(data) {
const lines = data.split("\n");
const res = [];
- lines.forEach(function(aLine) {
- if (aLine.length == 0) {
+ lines.forEach(function(line) {
+ if (line.length == 0) {
return;
}
- const [ device ] = aLine.split("\t");
+ const [ device ] = line.split("\t");
res.push(device);
});
return res;
}
);
},
- // sends adb forward aLocalPort aDevicePort
- forwardPort: function adb_forwardPort(aLocalPort, aDevicePort) {
- console.log("forwardPort " + aLocalPort + " -- " + aDevicePort);
+ // sends adb forward localPort devicePort
+ forwardPort: function adb_forwardPort(localPort, devicePort) {
+ console.log("forwardPort " + localPort + " -- " + devicePort);
// <host-prefix>:forward:<local>;<remote>
- return this.runCommand("host:forward:" + aLocalPort + ";" + aDevicePort)
+ return this.runCommand("host:forward:" + localPort + ";" + devicePort)
.then(function onSuccess(data) {
return data;
});
},
// pulls a file from the device.
// send "host:transport-any" why??
// if !OKAY, return
@@ -318,30 +318,30 @@ const ADB = {
// if !OKAY, return
// send STAT + hex4(path.length) + path
// recv STAT + 12 bytes (3 x 32 bits: mode, size, time)
// send RECV + hex4(path.length) + path
// while(needs data):
// recv DATA + hex4 + data
// recv DONE + hex4(0)
// send QUIT + hex4(0)
- pull: function adb_pull(aFrom, aDest) {
+ pull: function adb_pull(from, dest) {
const deferred = PromiseUtils.defer();
let state;
let fileData = null;
let currentPos = 0;
let chunkSize = 0;
let pkgData;
const headerArray = new Uint32Array(2);
let currentHeaderLength = 0;
const encoder = new TextEncoder();
let infoLengthPacket;
- console.log("pulling " + aFrom + " -> " + aDest);
+ console.log("pulling " + from + " -> " + dest);
const shutdown = function() {
console.log("pull shutdown");
socket.close();
deferred.reject("BAD_RESPONSE");
};
// extract chunk data header info. to headerArray.
@@ -394,72 +394,72 @@ const ADB = {
}
// Check DONE flag
if (doneFlagArray[0] == DONE) {
return true;
}
return false;
};
- const runFSM = function runFSM(aData) {
+ const runFSM = function runFSM(data) {
console.log("runFSM " + state);
let req;
switch (state) {
case "start":
state = "send-transport";
runFSM();
break;
case "send-transport":
req = client.createRequest("host:transport-any");
socket.send(req);
state = "wait-transport";
break;
case "wait-transport":
- if (!client.checkResponse(aData, OKAY)) {
+ if (!client.checkResponse(data, OKAY)) {
shutdown();
return;
}
console.log("transport: OK");
state = "send-sync";
runFSM();
break;
case "send-sync":
req = client.createRequest("sync:");
socket.send(req);
state = "wait-sync";
break;
case "wait-sync":
- if (!client.checkResponse(aData, OKAY)) {
+ if (!client.checkResponse(data, OKAY)) {
shutdown();
return;
}
console.log("sync: OK");
state = "send-recv";
runFSM();
break;
case "send-recv":
infoLengthPacket = new Uint32Array(1);
- infoLengthPacket[0] = aFrom.length;
+ infoLengthPacket[0] = from.length;
socket.send(encoder.encode("RECV"));
socket.send(infoLengthPacket);
- socket.send(encoder.encode(aFrom));
+ socket.send(encoder.encode(from));
state = "wait-recv";
break;
case "wait-recv":
// After sending "RECV" command, adb server will send chunks data back,
// Handle every single socket package here.
// Note: One socket package maybe contain many chunks, and often
// partial chunk at the end.
- pkgData = new Uint8Array(client.getBuffer(aData));
+ pkgData = new Uint8Array(client.getBuffer(data));
// Handle all data in a single socket package.
while (pkgData.length > 0) {
if (chunkSize == 0 && checkDone(pkgData)) {
- OS.File.writeAtomic(aDest, fileData, {}).then(
+ OS.File.writeAtomic(dest, fileData, {}).then(
function onSuccess(number) {
console.log(number);
deferred.resolve("SUCCESS");
},
function onFailure(reason) {
console.log(reason);
deferred.reject("CANT_ACCESS_FILE");
}
@@ -515,106 +515,106 @@ const ADB = {
break;
default:
console.log("pull Unexpected State: " + state);
deferred.reject("UNEXPECTED_STATE");
}
};
const setupSocket = function() {
- socket.s.onerror = function(aEvent) {
+ socket.s.onerror = function(event) {
console.log("pull onerror");
deferred.reject("SOCKET_ERROR");
};
- socket.s.onopen = function(aEvent) {
+ socket.s.onopen = function(event) {
console.log("pull onopen");
state = "start";
runFSM();
};
- socket.s.onclose = function(aEvent) {
+ socket.s.onclose = function(event) {
console.log("pull onclose");
};
- socket.s.ondata = function(aEvent) {
+ socket.s.ondata = function(event) {
console.log("pull ondata:");
- runFSM(aEvent.data);
+ runFSM(event.data);
};
};
const socket = client.connect();
setupSocket();
return deferred.promise;
},
// pushes a file to the device.
- // aFrom and aDest are full paths.
+ // from and dest are full paths.
// XXX we should STAT the remote path before sending.
- push: function adb_push(aFrom, aDest) {
+ push: function adb_push(from, dest) {
const deferred = PromiseUtils.defer();
let socket;
let state;
let fileSize;
let fileData;
let remaining;
let currentPos = 0;
let fileTime;
- console.log("pushing " + aFrom + " -> " + aDest);
+ console.log("pushing " + from + " -> " + dest);
const shutdown = function() {
console.log("push shutdown");
socket.close();
deferred.reject("BAD_RESPONSE");
};
- const runFSM = function runFSM(aData) {
+ const runFSM = function runFSM(data) {
console.log("runFSM " + state);
let req;
switch (state) {
case "start":
state = "send-transport";
runFSM();
break;
case "send-transport":
req = client.createRequest("host:transport-any");
socket.send(req);
state = "wait-transport";
break;
case "wait-transport":
- if (!client.checkResponse(aData, OKAY)) {
+ if (!client.checkResponse(data, OKAY)) {
shutdown();
return;
}
console.log("transport: OK");
state = "send-sync";
runFSM();
break;
case "send-sync":
req = client.createRequest("sync:");
socket.send(req);
state = "wait-sync";
break;
case "wait-sync":
- if (!client.checkResponse(aData, OKAY)) {
+ if (!client.checkResponse(data, OKAY)) {
shutdown();
return;
}
console.log("sync: OK");
state = "send-send";
runFSM();
break;
case "send-send":
- // need to send SEND + length($aDest,$fileMode)
+ // need to send SEND + length($dest,$fileMode)
// $fileMode is not the octal one there.
const encoder = new TextEncoder();
- const infoLengthPacket = new Uint32Array(1), info = aDest + ",33204";
+ const infoLengthPacket = new Uint32Array(1), info = dest + ",33204";
infoLengthPacket[0] = info.length;
socket.send(encoder.encode("SEND"));
socket.send(infoLengthPacket);
socket.send(encoder.encode(info));
// now sending file data.
while (remaining > 0) {
const toSend = remaining > 65536 ? 65536 : remaining;
@@ -639,17 +639,17 @@ const ADB = {
const fileTimePacket = new Uint32Array(1);
fileTimePacket[0] = fileTime;
socket.send(encoder.encode("DONE"));
socket.send(fileTimePacket);
state = "wait-done";
break;
case "wait-done":
- if (!client.checkResponse(aData, OKAY)) {
+ if (!client.checkResponse(data, OKAY)) {
shutdown();
return;
}
console.log("DONE: OK");
state = "end";
runFSM();
break;
case "end":
@@ -658,53 +658,53 @@ const ADB = {
break;
default:
console.log("push Unexpected State: " + state);
deferred.reject("UNEXPECTED_STATE");
}
};
const setupSocket = function() {
- socket.s.onerror = function(aEvent) {
+ socket.s.onerror = function(event) {
console.log("push onerror");
deferred.reject("SOCKET_ERROR");
};
- socket.s.onopen = function(aEvent) {
+ socket.s.onopen = function(event) {
console.log("push onopen");
state = "start";
runFSM();
};
- socket.s.onclose = function(aEvent) {
+ socket.s.onclose = function(event) {
console.log("push onclose");
};
- socket.s.ondata = function(aEvent) {
+ socket.s.ondata = function(event) {
console.log("push ondata");
- runFSM(aEvent.data);
+ runFSM(event.data);
};
};
// Stat the file, get its size.
- OS.File.stat(aFrom).then(
+ OS.File.stat(from).then(
function onSuccess(stat) {
if (stat.isDir) {
// The path represents a directory
deferred.reject("CANT_PUSH_DIR");
} else {
// The path represents a file, not a directory
fileSize = stat.size;
// We want seconds since epoch
fileTime = stat.lastModificationDate.getTime() / 1000;
remaining = fileSize;
- console.log(aFrom + " size is " + fileSize);
- const readPromise = OS.File.read(aFrom);
+ console.log(from + " size is " + fileSize);
+ const readPromise = OS.File.read(from);
readPromise.then(
- function readSuccess(aData) {
- fileData = aData;
+ function readSuccess(data) {
+ fileData = data;
socket = client.connect();
setupSocket();
},
function readError() {
deferred.reject("READ_FAILED");
}
);
}
@@ -714,98 +714,98 @@ const ADB = {
deferred.reject("CANT_ACCESS_FILE");
}
);
return deferred.promise;
},
// Run a shell command
- shell: function adb_shell(aCommand) {
+ shell: function adb_shell(command) {
const deferred = PromiseUtils.defer();
let state;
let stdout = "";
- console.log("shell " + aCommand);
+ console.log("shell " + command);
const shutdown = function() {
console.log("shell shutdown");
socket.close();
deferred.reject("BAD_RESPONSE");
};
- const runFSM = function runFSM(aData) {
+ const runFSM = function runFSM(data) {
console.log("runFSM " + state);
let req;
let ignoreResponseCode = false;
switch (state) {
case "start":
state = "send-transport";
runFSM();
break;
case "send-transport":
req = client.createRequest("host:transport-any");
socket.send(req);
state = "wait-transport";
break;
case "wait-transport":
- if (!client.checkResponse(aData, OKAY)) {
+ if (!client.checkResponse(data, OKAY)) {
shutdown();
return;
}
state = "send-shell";
runFSM();
break;
case "send-shell":
- req = client.createRequest("shell:" + aCommand);
+ req = client.createRequest("shell:" + command);
socket.send(req);
state = "rec-shell";
break;
case "rec-shell":
- if (!client.checkResponse(aData, OKAY)) {
+ if (!client.checkResponse(data, OKAY)) {
shutdown();
return;
}
state = "decode-shell";
- if (client.getBuffer(aData).byteLength == 4) {
+ if (client.getBuffer(data).byteLength == 4) {
break;
}
ignoreResponseCode = true;
case "decode-shell":
const decoder = new TextDecoder();
- const text = new Uint8Array(client.getBuffer(aData),
+ const text = new Uint8Array(client.getBuffer(data),
ignoreResponseCode ? 4 : 0);
stdout += decoder.decode(text);
break;
default:
console.log("shell Unexpected State: " + state);
deferred.reject("UNEXPECTED_STATE");
}
};
const socket = client.connect();
- socket.s.onerror = function(aEvent) {
+ socket.s.onerror = function(event) {
console.log("shell onerror");
deferred.reject("SOCKET_ERROR");
};
- socket.s.onopen = function(aEvent) {
+ socket.s.onopen = function(event) {
console.log("shell onopen");
state = "start";
runFSM();
};
- socket.s.onclose = function(aEvent) {
+ socket.s.onclose = function(event) {
deferred.resolve(stdout);
console.log("shell onclose");
};
- socket.s.ondata = function(aEvent) {
+ socket.s.ondata = function(event) {
console.log("shell ondata");
- runFSM(aEvent.data);
+ runFSM(event.data);
};
return deferred.promise;
},
reboot: function adb_reboot() {
return this.shell("reboot");
},
@@ -825,31 +825,31 @@ const ADB = {
console.log("root");
const shutdown = function() {
console.log("root shutdown");
socket.close();
deferred.reject("BAD_RESPONSE");
};
- const runFSM = function runFSM(aData) {
+ const runFSM = function runFSM(data) {
console.log("runFSM " + state);
let req;
switch (state) {
case "start":
state = "send-transport";
runFSM();
break;
case "send-transport":
req = client.createRequest("host:transport-any");
socket.send(req);
state = "wait-transport";
break;
case "wait-transport":
- if (!client.checkResponse(aData, OKAY)) {
+ if (!client.checkResponse(data, OKAY)) {
shutdown();
return;
}
state = "send-root";
runFSM();
break;
case "send-root":
req = client.createRequest("root:");
@@ -861,73 +861,73 @@ const ADB = {
break;
default:
console.log("root Unexpected State: " + state);
deferred.reject("UNEXPECTED_STATE");
}
};
const socket = client.connect();
- socket.s.onerror = function(aEvent) {
+ socket.s.onerror = function(event) {
console.log("root onerror");
deferred.reject("SOCKET_ERROR");
};
- socket.s.onopen = function(aEvent) {
+ socket.s.onopen = function(event) {
console.log("root onopen");
state = "start";
runFSM();
};
- socket.s.onclose = function(aEvent) {
+ socket.s.onclose = function(event) {
deferred.resolve();
console.log("root onclose");
};
- socket.s.ondata = function(aEvent) {
+ socket.s.ondata = function(event) {
console.log("root ondata");
- runFSM(aEvent.data);
+ runFSM(event.data);
};
return deferred.promise;
},
// Asynchronously runs an adb command.
- // @param aCommand The command as documented in
+ // @param command The command as documented in
// http://androidxref.com/4.0.4/xref/system/core/adb/SERVICES.TXT
- runCommand: function adb_runCommand(aCommand) {
- console.log("runCommand " + aCommand);
+ runCommand: function adb_runCommand(command) {
+ console.log("runCommand " + command);
const deferred = PromiseUtils.defer();
if (!this.ready) {
setTimeout(function() {
deferred.reject("ADB_NOT_READY");
});
return deferred.promise;
}
const socket = client.connect();
socket.s.onopen = function() {
console.log("runCommand onopen");
- const req = client.createRequest(aCommand);
+ const req = client.createRequest(command);
socket.send(req);
};
socket.s.onerror = function() {
console.log("runCommand onerror");
deferred.reject("NETWORK_ERROR");
};
socket.s.onclose = function() {
console.log("runCommand onclose");
};
- socket.s.ondata = function(aEvent) {
+ socket.s.ondata = function(event) {
console.log("runCommand ondata");
- const data = aEvent.data;
+ const data = event.data;
const packet = client.unpackPacket(data, false);
if (!client.checkResponse(data, OKAY)) {
socket.close();
console.log("Error: " + packet.data);
deferred.reject("PROTOCOL_ERROR");
return;
}