Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

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-контрол, естественно, ничего не сказал, хотя URL  javascript: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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.109 c
2-1274176896
St.Anger
2010-05-18 14:01
2010.08.27
Двумерный динамический массив


10-1166561371
TStas
2006-12-19 23:49
2010.08.27
Как получить число страниц в вордовском файле?


2-1272781981
ixen
2010-05-02 10:33
2010.08.27
Как отобразить дату по маске в Dblookupcombobox?


15-1272703696
Pavia
2010-05-01 12:48
2010.08.27
numerical recipes


2-1265830771
fford
2010-02-10 22:39
2010.08.27
копировать файл на расшареный ресурс