Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизTMozillaBrowser и программный доступ к параметрам конфигурации Найти похожие ветки
← →
Сергей М. © (2010-02-08 13:16) [0]Ткните носом куда копать ..
← →
Cobalt © (2010-02-08 15:37) [1]about:config ?
← →
Сергей М. © (2010-02-08 15:44) [2]Это же не программный доступ)
← →
sniknik © (2010-02-08 15:54) [3]а программный вообще есть? они же OLE/ActivX принципиально не поддерживают...
но может можно к базе параметров обратится... они SQLite используют, можно посмотреть, что конкретно нужно прямо в таблицах.
кстати есть хороший плагин к самой мазиле - SQLite Manager.
← →
Сергей М. © (2010-02-08 15:58) [4]
> они же OLE/ActivX принципиально не поддерживают
TMozillaBrowser = class(TOleControl)
За классом TMozillaBrowser стоит Gecko-движок, завернутый в AX-контрол
← →
Сергей М. © (2010-02-08 16:16) [5]http://www.iol.ie/~locka/mozilla/control.htm
← →
sniknik © (2010-02-08 16:24) [6]по моему это не то...
я их использую для одной программы (HTMLPad), так вот в ней без установленных этих контролов нет пред-просмотра для мазилы (для IE есть а для мазилы только после установки). а еще точнее не самой мазилы, а аналога на Gecko, т.к. ее версии и того что получается в этом движке различаются.
т.е. это аналог IE-шного ActivX-са на базе движка гекко (нафиг он был бы нужен если бы можно подключится прямо к самой мазиле?)
но вообще, все имхо, не разбирался конкретно в этой теме.
← →
Сергей М. © (2010-02-08 16:35) [7]
> по моему это не то...
Что значит "не то" ?
Именно об этом контроле я и веду речь..
← →
tesseract © (2010-02-08 16:50) [8]
> Именно об этом контроле я и веду речь..
Он вроде как на 100% совместим с tWeBrowser. И к настройкам не допускает, самому хранить придется.
← →
Сергей М. © (2010-02-08 17:04) [9]> к настройкам не допускает, самому хранить придется
Я ж не против их хранить сам, но восстанавливать-то как ?
Ведь должен же быть какой-то программный интерфейс ..
Ну, скажем, возжелал я отключить автозагрузку изображений.
Ручками это делается просто: открывается страница "about:config" и соотв.параметр правится ручками в интерактивном диалоге.
А программно-то те же самые действия как реализовать ?
← →
Сергей М. © (2010-02-08 17:12) [10]Похоже все идет к тому, что без соотв.плагина, которого в составе дистрибутива попросту нет, не обойтись.
Но м.б. я ошибаюсь и не вижу очевидного ?
← →
sniknik © (2010-02-08 17:14) [11]> Что значит "не то" ?
это не мозила. у него вполне может не быть "страница "about:config" и соотв.параметр", да и собственно действий по отключений автозагрузки изображений.
← →
Сергей М. © (2010-02-09 08:36) [12]
> sniknik © (08.02.10 17:14) [11]
> у него вполне может не быть "страница "about:config" и соотв.
> параметр", да и собственно действий по отключений автозагрузки
> изображений
Однако и страница и параметр есть, и точно также как в FireFox этот параметр делает именно то что от него ожидается .. равно как и прочие параметры ..
← →
sniknik © (2010-02-09 09:23) [13]> Однако и страница и параметр есть
ну... с этого и надо было начинать. я на это не смотрел.
а если оно видится страницей (т.е. обращение как бы к серверу), то может и параметры также как при get/post передаются? т.е. about:config?параметр=значение&параметр2=значение2
??? может быть?
← →
Сергей М. © (2010-02-09 17:19) [14]
> sniknik © (09.02.10 09:23) [13]
> about:config?параметр=значение&параметр2=значение2
> ???
К сож., нет.
Эта страница из разряда Mozilla Magic.
В принципе к решению я уже почти вплотную подобрался, хоть и кривовато оно выглядит.
А выглядит оно пока вот так:
- для управления одной или более опциями конфига готовим файл-документ config.htm след.содержания:<!DOCTYPE HTML>
<HTML>
<HEAD></HEAD>
<BODY>
<SCRIPT type="text/javascript">
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
// запретить автозагрузку изображений
prefs.setIntPref("network.image.imageBehavior",2);
</SCRIPT>
</BODY>
</HTML>
- передаем браузеру для навигации этот документMozillaBrowser.Navigate("file://C:\MozillaControlTest\config.html")
Опция при этом успешно переключается, но вызов метода enablePrivilege приводит к показу модального окна с требованием подтвердить или отклонить полномочия документа на изменение параметров безопасности браузера.
Как убрать к лешему этот диалог - я пока не знаю ...
← →
sniknik © (2010-02-09 20:27) [15]> Эта страница из разряда Mozilla Magic.
ты ж говорил она там есть... я поверил, у меня то в упомянутой выше программе ничего подобного по about:config не открывается (открывается сайт about.сом, думал ну может подмена, они же не обязаны "голый" движок использовать, а у тебя он и есть...)
> Как убрать к лешему этот диалог - я пока не знаю ...
легко, прямо вот так в строку
javascript:netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnec t");var prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setIntPref("ne twork.image.imageBehavior",2);
если меньше ограничения на get запрос должно сработать
проверь, или так javascript:alert("работаю!");
← →
sniknik © (2010-02-09 20:32) [16]упростить, для краткости
javascript:Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).setIntPref("network. image.imageBehavior",2);
привилегии, имхо, можно заранее, один раз на сессию выполнить.
и кстати убери пробелв которые форум вставил...
← →
Сергей М. © (2010-02-09 21:04) [17]
> ты ж говорил она там есть
Нет ну сама страница-то с URL about:config есть - параметры она не допускает .. Я именно о параметрах ..
> у меня то в упомянутой выше программе ничего подобного по
> about:config не открывается
Как это так ?
Странно ..
> легко, прямо вот так в строку
Легко-то легко, но .. один фигвам сменился другим)
Диалоговое окно подтверждения теперь не выскакивает, вместо него попытка передать браузеру на навигацию URL вида:javascript:netscape.security.PrivilegeManager.enablePrivilege("UniversalXP Connect");
приводит к отказу с диагностикой
A script from «moz-safe-about:blank» was denied UniversalXPConnect privileges.
Диагностику эту выдал отладчик FireBug под управлением FireFox =на Gecko-движке версии :1.9.1.7
Сам MozillaBrowser AX-контрол, естественно, ничего не сказал, хотя URLjavascript:alert("работаю!")
отработал он как же успешно как и FireFox
← →
Сергей М. © (2010-02-09 21:09) [18]
> sniknik © (09.02.10 20:32) [16]
На URL
javascript:Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).setIntPref("network. %20image.imageBehavior",2);
отладчик вполне справедливо выругался
Permission denied for <moz-safe-about:blank> to get property XPCComponents.classes
← →
sniknik © (2010-02-09 22:47) [19]> Как это так ?
а вот так
http://img713.imageshack.us/img713/2820/htmlpad.png
> Странно ..
не то слово.
> приводит к отказу с диагностикой
> A script from «moz-safe-about:blank» was denied UniversalXPConnect privileges.
а у меня срабатывает... похоже тебе нужно как-то пустую страницу в разрешенные, откуда скрипты можно выполнять, добавить...
вот тут что то про это пишут
http://www.mozilla.org/projects/security/components/signed-scripts.html
ну или попробовать с более низкими разрешениями (на запись в страницу например).
> отладчик вполне справедливо выругался
> Permission denied
ну так, вообще то предполагал, что привилегии получены
> привилегии, имхо, можно заранее, один раз на сессию выполнить.
а если сразу то то конечно...
← →
Сергей М. © (2010-02-10 10:09) [20]
> а вот так
> http://img713.imageshack.us/img713/2820/htmlpad.png
Так, стоп ..
HTMLEdit разве на Gecko-движке (GRE) базируется ?
Я просто не в курсе ..
Если не GRE, то разумеется ни про какие about:config он не знает..
> предполагал, что привилегии получены
Да, изменение в профайле преференции по умолчаниюuser_pref("signed.applets.codebase_principal_support", false);
наuser_pref("signed.applets.codebase_principal_support", true);
дает ожидаемый результат, т.е. URL видаjavascript:netscape.security.PrivilegeManager.enablePrivilege("UniversalXP Connect UniversalPreferencesRead UniversalPreferencesWrite")
GRE отрабатывает успешно и без вопросов, так что последующие URL видаjavascript:Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).setIntPref("network. image.imageBehavior",2)
успешно решают изначально поставленную задачу.
Однако теперь засада в другом: изменение файла преференций - операция хоть и автоматизируемая, но требует перезапуска GRE, а по изначальным условиям, как понимаешь, требуется изменение конфига "на лету", т.е. в той же сессии.
Но тем не менее - превеликое спасибо тебе за оказанную помощь !
← →
Сергей М. © (2010-02-10 15:42) [21]
> sniknik © (09.02.10 22:47) [19]
Вобщем после всех этих плясок с бубном я пришел в выводу, что с этим готовым контролом я занялся хренью.
Все меня интересующее делается гораздо проще и изящней, если отказаться от готового AX-контрола в пользу прямого доступа к NSAPI с использованием GeckoComponents + GeckoSDK + GRE
Буквально в три строчки кода безо всяких извращений с JS:CheckNSResult(NS_GetService(NS_PREFSERVICE_CID, nsIPrefService, prefSrv));
CheckNSResult(prefSrv.GetBranch(nil, br));
CheckNSResult(br.SetIntPref("network.image.imageBehavior", 2));
← →
sniknik © (2010-02-11 01:24) [22]> Так, стоп ..
> HTMLEdit разве на Gecko-движке (GRE) базируется ?
не HTMLEdit, а HTMLpad и он использует (что использует первый не знаю, не использовал) именно те олеконтролы на которые ты ссылку в [5] давал, собственно там и в доке на них же ссылка.
т.е.. и это уже писал, чтобы заработал вид "от мазилы" (переключатель иконка мазилы справа вверху на скриншоте, рядом с ie-шным) нужно их поставить, т.е. там ActivX на Gecko аналогичный по функциям/интерфейсам ActivX-e IE (можно импортировать и заменять TWebBrowser один в один).
> Если не GRE, то разумеется ни про какие about:config он не знает..
знает, но скрывает похоже... т.к. база сомнений не вызывает (на jQuery проверял как то тип, выдало то же, что и в мозиле но версией поменьше)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.058 c