Определить, является ли firefox FirefoxPortable или нет из области аддона

Я пытаюсь сделать так, чтобы мой аддон поддерживал переносимый Firefox, у меня все работает, но я хочу поддерживать переносимый и непереносимый из одного и того же аддона. Я не хочу делать отдельный релиз для портативных пользователей.

Итак, я пытаюсь определить с помощью своего аддона, является ли Firefox, в котором он работает, переносимым. Это оказалось очень непросто.

Это другие места, где люди пытаются помочь:


person Noitidart    schedule 09.05.2014    source источник


Ответы (1)


Я бы получил путь XREExeF, прошел один каталог назад и проверил, существуют ли там каталоги AppInfo и DefaultData.

Каталог Firefox тоже есть, но он может называться по-разному для портативных устройств Aurora и Nightly.

var exeFile = FileUtils.getFile("XREExeF", []);
var defaultdata = exeFile.parent.parent;
var appinfo = defaultdata.clone();
defaultdata.append("DefaultData");
appinfo.append("AppInfo");

if(defaultdata.exists() && appinfo.exists() && defaultdata.isDirectory && appinfo.isDirectory())
  console.log("This is Portable Firefox");
else
  console.log("This is not Portable Firefox");
person paa    schedule 09.05.2014
comment
Спасибо, чувак, за эту идею, я изучу и дам тебе знать, что у меня получилось. :) - person Noitidart; 09.05.2014
comment
Тестовые примеры от пользователей :::::: * Non-port1: C:\Program Files (x86)\Mozilla Firefox\firefox.exe * Non-port2: C:\Program Files (x86)\Mozilla Firefox\firefox.exe * Non-port3: C:\Program Files\Mozilla Firefox\firefox.exe * Portable1: C:\Users\C71ZQW1\Desktop\FirefoxPortable\App\firefox\firefox.exe * Portable2: D:\Program Files (x86)\Firefox\Firefox\firefox.exe - person Noitidart; 09.05.2014
comment
Спасибо, чувак, я изучу это! (примечание для себя: если exe.parent.parent является CurWorkD или потомком, чем его переносимый) - person Noitidart; 10.05.2014
comment
спасибо, чувак, за подробное редактирование. Однако были найдены исключения, у китайских пользователей есть эта странная версия potrable, и это не всегда будет работать для них. особенно если они устанавливаются прямо на диск. Я просто собираюсь создать отдельный выпуск ProfilistPortable, чтобы не нужно было определять, переносим он или нет. - person Noitidart; 10.05.2014