Проверка значения Firefox Components.interfaces.nsIDOMWindowUtils.screenPixelsPerCSSPixel в Javascript Scratchpad

Я использую Firefox Scratchpad, чтобы понять поведение масштабирования, которое возникает, когда пользователь вводит CTRL-PLUS а также CTRL-MINUS ключи. В Javascript Scratchpad я оцениваю фрагмент кода Javascript, который обращается кComponents.interfaces.nsIDOMWindowUtils.screenPixelsPerCSSPixelсвойство как это:

var util = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowUtils); 
util.screenPixelsPerCSSPixel

В Scratchpad набрав CTRL-L после последнего l в screenPixelsPerCSSPixel выше результаты в исключении:

Exception: The operation is insecure.

(Обратите внимание, что текущая активная вкладка Firefox указывает на http://www.google.com/).

devtools.chrome.enabled флаг установлен в значение true в этом контексте, но это, похоже, не имеет значения, так как исключение все еще генерируется.

Что мне нужно сделать, чтобы Javascript Scratchpad отображал это значение?

Он предназначен только для временного понимания во время отладочного ритуала. Отложите пока очевидный вопрос: "Почему риск безопасности демонстрирует коэффициент масштабирования?". Я только после того, как получил значение из пределов стандартного и безопасного управления Firefox, такого как включение / отключение about:config значения, которые я могу легко отменить позже, когда я закончу.

1 ответ

Вот ответ, который я нашел:

Доступ к window переменная из области Scratchpad, для которой Environment (см. ее меню Environment) установлено значение Content, приводит к созданию объекта одного типа, в то время как для Environment установлено значение Browser, другой тип объекта используется (CTRL-L на нем в отчете Scratch Pad это типа ChromeWindow). window.content объект является объектом контента относительно ChromeWindow объект.

Значение

....QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowUtils).screenPixelsPerCSSPixel

относительно window объект (ChromeWindow) объект возвращается1во время вызова на window.content показывает что-то отличное от 1 и показывает, что задействовано масштабирование.

(РЕДАКТИРОВАТЬ: я переместил код Javascript, который раньше был здесь; см. Ниже.)

Чтобы продемонстрировать использование значения, я предоставил образец Javascript в ответ на мой другой вопрос в разделе "Поиск координат X / Y верхнего уровня X Window текста CTRL-F в Firefox".

Другие вопросы по тегам