Отображение страницы расширения на вкладке браузера - PullRequest
0 голосов
/ 27 января 2011

Я пытаюсь написать расширение, которое имеет некоторый расширенный контроль (гораздо больше, чем выбор из списка или проверка / снятие).

Я хочу создать отдельную страницу для выполнения всех необходимых действий, в идеале это будет отдельная вкладка.

Вопрос:

Можно ли создать окно XUL и вставить его во вкладку браузера?

Пока у меня есть только одна идея - сохранить html-страницу в папке / content и использовать их. Но мне не нравится, что пользователь увидит какой-то странный URL-адрес Chrome: //blalbla/content/control.html и т. Д.

1 Ответ

1 голос
/ 29 января 2011

Это работает и со страницами XUL.Но если вы хотите скрыть URL-адрес chrome: от пользователя, вы можете создать компонент, который перенаправляет about:myext на URL-адрес chrome:.Ниже приведен фрагмент кода:

myAbout.prototype = {
  QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsIAboutModule]),

  getURIFlags: function(aURI) {
    return Components.interfaces.nsIAboutModule.ALLOW_SCRIPT;
  },

  newChannel: function(aURI) {
    var channel = ioSvc.newChannel("chrome://myext/content/myext.xul", null, null);
    channel.originalURI = aURI;
    return channel;
  }
};

Затем вам необходимо зарегистрировать свой компонент, используя идентификатор контракта @mozilla.org/network/protocol/about;1?what=myext, и он перенаправит about:myext на вашу страницу XUL.

...