Установить расширение Opera из реестра

Я разработал расширение Opera. Это работает нормально. Но мне нужно установить расширение в реестр Windows или в файловую систему Windows. Как я могу это сделать?


person propostaff    schedule 10.09.2012    source источник


Ответы (1)


ПРИМЕЧАНИЕ. ЭТОТ ВОПРОС ОТНОСИТСЯ К OPERA 12
Opera 12 использует другую архитектуру расширения, чем следующие версии Opera!

Расширения Opera не устанавливаются через реестр.

Вы найдете XML-файл с именем widget.dat в папке:

C:\Users\%Username%\AppData\Local\Opera\Opera\widgets

У каждого виджета есть запись. Я думаю, что вы сами поймете синтаксис, он вполне объясним, если у вас установлены какие-то виджеты.


РЕДАКТИРОВАТЬ: я только что узнал, что добавление новой записи в widget.dat приведет к установке расширения в Opera, но оно будет деактивировано, поскольку оно не было инициализировано. Обычно это происходит через движок javascript/расширения во время выполнения.

Чтобы включить скрипт вручную, в папке wuid-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx должен быть prefs.dat, отмеченный в widget.dat, содержащий как минимум следующую структуру:

<?xml version="1.0" encoding="utf-8"?>
<preferences>
  <section id="ui">
    <value id="default-prefs-applied" xml:space="preserve">1</value>
  </section>
</preferences>

Кроме того, вам, возможно, придется вручную инициализировать настройки виджета в папке pstorage. Настройки хранятся в виде строк пар ключ-значение utf-16 в кодировке base64. Итак, эта закодированная структура:

<ws>
  <e>
    <k>YQBsAGUAcgB0AF8AYgB1AGIAYgBsAGUAXwB0AGkAbQBlAG8AdQB0AA==</k>
    <v>IgAxADUAIgA=</v>
  </e>
<ws>

Читается как:

<widgetsettings>
  <entry>
    <key>alert_bubble_timeout</key>
    <value>"15"</value>
  </entry>
<widgetsettings>

(Имена тегов интерпретируются свободно;) Я нашел base64 en/decoder, способный обрабатывать utf-16 здесь


PS: Opera установит виджеты, дважды щелкнув их. Таким образом, вы также можете запустить Opera с путем расширения в командной строке. Опера все сделает за вас.

C:\Program Files\Opera\opera.exe C:\Path\To\Extension.oex
person Nippey    schedule 10.09.2012
comment
Я устанавливаю расширение для многих браузеров с помощью моей настольной программы. Как я могу установить расширение в тихом режиме? - person propostaff; 10.09.2012
comment
Я отредактировал свой ответ выше, я всегда рад голосам, если это вам поможет;) - person Nippey; 10.09.2012
comment
Большое спасибо! Это полезно для меня, но у меня низкая репутация, чтобы голосовать за ваш вопрос =(( - person propostaff; 10.09.2012
comment
Если можно, подскажите, где вы нашли эту информацию, я облазил все, включая форумы Оперы и ничего не нашел =( - person propostaff; 10.09.2012
comment
Я просто вывел это из структуры папок, все сделал сам =) К сожалению (по крайней мере для нас) эти вещи не задокументированы. - person Nippey; 10.09.2012