Определение субъекта безопасности обработчика событий в точке входа компилятора SpiderMonkey - PullRequest
0 голосов
/ 09 марта 2012

В настоящее время функция в nsJSContext :: CompileEventHandler *1002* компилирует обработчики событий с нулевыми принципалами. Поэтому в функции frontend :: CompileFunctionBody объекта Spidermonkey в настоящее время нет способа связать принципала с обработчиком событий. Позже, принципал функции-обработчика события определяется в nsScriptSecurityManager :: CheckFunctionAccess .
У меня вопрос, может ли субъект безопасности обработчика событий быть обнаружен в точке входа компилятора? Моя интуиция заключается в следующем: обычно обработчики событий присоединяются к элементам DOM, принципалом которых является документ контейнера. Есть ли случай, когда обработчик событий вызывается отдельным принципалом, чем документ контейнера? Если вышеприведенное верно, можно ли определить основную часть обработчика событий из атрибута «filename» функции frontend :: CompileFunctionBody (например, chrome: // URI означает систему, http: // uri значит не системный)?
(Кстати. Как мы можем определить принцип о: документах протокола? Иногда они являются «системными», иногда нет)

1 Ответ

0 голосов
/ 10 марта 2012

Один обработчик событий может совместно использоваться в документах с разными принципалами (например, через XBL), поэтому вы действительно не знаете принципала во время компиляции.Перед выполнением обработчик клонируется с правильным принципалом.

...