Получение текущего идентификатора внутреннего окна в расширении Firefox 32

Я пытаюсь сохранить расширение Firefox, и оно зависит от текущего идентификатора внутреннего окна. В Firefox 31 объект окна имеет QueryInterface:

components/foo.js:

Foo.prototype = {
  window: null,
  ...
  init: function(aWindow) {
    this.window = XPCNativeWrapper.unwrap(aWindow);
    var util = this.window.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils);
    dump('Your inner window ID is: ' + util.currentInnerWindowID + '\n');
  },
  ...
  shutdown: function() {
  }
}

В Firefox 32 объект window.QueryInterface исчез, и мне интересно, как получить текущий идентификатор внутреннего окна.

Благодарю.

1 ответ

Вызов XPCNativeWrapper.unwrap удаляет QueryInterface из aWindow.

if (aWindow.QueryInterface) {
  util = XPCNativeWrapper.unwrap(aWindow.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils));
  dump('Your inner window ID is: ' + util.currentInnerWindowID + '\n');
}
Другие вопросы по тегам