Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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-контрол, естественно, ничего не сказал, хотя 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.059 c
15-1270413005
Юрий
2010-04-05 00:30
2010.08.27
С днем рождения ! 5 апреля 2010 понедельник


2-1269543236
Первокурсница
2010-03-25 21:53
2010.08.27
Delphi 7: строки, обратный порядок слов


15-1270038959
pasha_golub
2010-03-31 16:35
2010.08.27
Плач математика


2-1267530370
Fr
2010-03-02 14:46
2010.08.27
компоненты в run-time


15-1273756585
oldman
2010-05-13 17:16
2010.08.27
Визитная карточка Samsung - оружие самурая...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский