FTPd.js работает под Opera 10.00 RC
Случайно обнаружил, что FTP-сервер, который я восемь лет писал на JavaScript (с использованием LiveConnect к Java) работает, оказывается под Opera 10 RC, которая вчера вышла. Интересно, что запрос к PrivilegeManager «Опера» понимает, но обрабатывает как-то неправильно.
LiveConnect — это придуманный фирмой Netscape для их браузера Netscape 4.xx (удобный) способ скрещивания различных плагинов и JavaScript, в частности, можно вызывать из JavaScript Java и наоборот. Насколько я понимаю, после смерти браузера Netscape, наследниками технологии LiveConnect стали FireFox (из-за того, видимо, что Netscape принимала участие в разработке Gecko) и Opera, по всей видимости, просто из-за того, что она поддерживает бинарные плагины Gecko.
А вот под новыми браузерами FireFox мой сервер не работает — не хватает полномочий. Мне, если честно, не хочется разбираться что там ещё надо запрашивать.
Надо отметить что LiveConnect будет выброшен в Fx 3.6
https://bugzilla.mozilla.org/show_bug.cgi?id=442399
Комментарий для leotsarev.livejournal.com:
Чёрт :) За что?
Комментарий для Евгения Степанищева:
<em>Both LiveConnect and OJI are both under-maintained and very very old. Nobody knows this code, nobody actively works on issues in the code, and there’s plenty of them. They’re both used by the Java plugin, and a new Java plugin already ships on Windows and *nix with a completely new plugin that doesn’t depend on LiveConnect or OJI</em>
https://wiki.mozilla.org/Mozilla_2/Kill_LiveConnect
Комментарий для leotsarev.livejournal.com:
«Это всё старое, никто не понимает, потому выгасим». Мда, странная позиция.
Комментарий для Евгения Степанищева:
Скорее обычная ситуация. Кажется когда-то из IE выбросили gopher по той же причине.
Комментарий для rembish.livejournal.com:
Не совсем. В Gopher нашли уязвимость, а так как этим протоколом (почти) никто не пользуется, то его удалили.
Комментарий для Евгения Степанищева:
В плагинах нового поколения (Java >= 6 u 10) прямой вызов java из javascript (лайвконнект) работает в том числе в Internet Explorer. Но есть одно условие: первый раз нужно вызвать такой яваскрипт из апплета (java -> javascript -> java). Потом — откуда угодно в пределах страницы.
import java.applet.*;
import netscape.javascript.JSObject;
public class JavaJSJava extends Applet
{
public void start()
{
try {
JSObject window = JSObject.getWindow(this);
window.eval(«alert(new java.lang.String(’Java from JS’))»);
}
catch (Exception e){}
}
}
Если б они знали правду о том, где «это» в основном используется, причина была бы другой...
Комментарий для olo-olo-lo.ya.ru:
Странно, в моём IE8 объект java из JS недоступен. Или он появится когда из Java вызовешь JS?
Комментарий для Евгения Степанищева:
Именно! В этом-то весь прикол!
Комментарий для olo-olo-lo.ya.ru:
Ох, мама… Надо попробовать, спасибо! Время будет — поэкспериментирую, есть мысли.
А где это используется?
Комментарий для olo-olo-lo.ya.ru:
А… я почему-то думал, что надо просто дёрнуть любую функцию из JS на HTML-странице, а это просто вызов JS из Java и из того JS уже можно вызывать Java. Моя понимать :)