Я предполагаю, что вы находитесь в приложении XULRunner и пытаетесь загрузить URL-адрес Chrome из источника, отличного от Chrome, в браузере (например, HTTP или локальный файл). Хотя включение UniversalXPConnect и UniversalBrowserWrite может быть полезным, они также представляют угрозу безопасности (поскольку их может использовать любой произвольный скрипт в Интернете), поэтому они, как правило, отключаются в браузерах (например, запуск этой строки в Firebug даст вам исключение ):
>>> netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalBrowserWrite");
Error: A script from "http://stackoverflow.com" was denied UniversalXPConnect UniversalBrowserWrite privileges.
Как насчет того, чтобы попробовать использовать принципы безопасности кодовой базы и посмотреть, будет ли это иметь значение? (http://www.mozilla.org/projects/security/components/signed-scripts.html#codebase). Для меня в Firebug это позволяет мне получить дополнительные разрешения после того, как я согласую это с большим, неприятным диалоговым окном), но все еще не позволяет мне открыть URL-адрес Chrome с помощью window.open. Следующим шагом, вероятно, будет попытка изменить ваш файл конфигурации, чтобы использовать contentaccessible, чтобы соответствующие части вашего контента были доступны (см. https://developer.mozilla.org/en/Chrome_Registration#contentaccessible).
Чтобы избежать неприятного сообщения при повышении разрешений, вы можете попробовать установить разрешения для нужных файлов автоматически, как описано в http://forums.mozillazine.org/viewtopic.php?f=38&t=1769555.
Также не забудьте проверить тип браузера (https://developer.mozilla.org/en/XUL/Attribute/browser.type). Если тип браузера не хром, то, возможно, стоит попробовать сделать его хромом и посмотреть, будет ли это иметь значение.
Если какое-либо из моих предположений неверно, свяжитесь со мной, и я попробую что-нибудь еще.
person
Jonathan Morgan
schedule
11.12.2010