Проверка значения 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".