Разработка расширения для браузера Opera
Opera с 2013 года работает на движке Blink (Chromium), поэтому Chrome Extensions запускаются в Opera без изменений кода. Opera публикует расширения в собственном каталоге addons.opera.com, но также позволяет устанавливать расширения напрямую из Chrome Web Store через официальный экстензн «Install Chrome Extensions».
Совместимость
Opera поддерживает chrome.* API идентично Chrome. Manifest V3 поддерживается с Opera 92+. Различия:
| Функция | Opera | Примечание |
|---|---|---|
chrome.* API |
Полная поддержка | Идентично Chrome |
opera.* API |
Частично | Устарел, для новых расширений не нужен |
| Sidebar Extensions | Есть | Специфично для Opera |
| Speed Dial Extensions | Есть | Специфично для Opera |
| MV3 | С Opera 92+ | Рекомендован |
Opera Sidebar Extensions
Opera имеет боковую панель слева от контента. Расширение может добавить туда кнопку и встроенный веб-интерфейс:
{
"manifest_version": 3,
"name": "My Opera Extension",
"version": "1.0.0",
"permissions": ["storage", "tabs"],
"background": {
"service_worker": "background.js"
},
"action": {
"default_popup": "popup.html",
"default_icon": "icons/icon48.png"
},
"sidebar_action": {
"default_title": "My Tool",
"default_panel": "sidebar.html",
"default_icon": "icons/sidebar-icon.svg"
}
}
// background.js — управление sidebar
// Открыть/закрыть sidebar программно
opr.sidebarAction.setPanel({ tabId: tab.id, panel: 'sidebar.html' });
opr.* — Opera-специфичный namespace, аналог chrome.*:
// Доступные opr API:
opr.sidebarAction // управление боковой панелью
opr.addons // информация о расширении
opr.cryptoWallet // интеграция с crypto-кошельком Opera
Speed Dial
Speed Dial — стартовая страница Opera с плитками сайтов. Расширение может добавить собственную плитку:
"chrome_url_overrides": {
"speeddial": "speeddial.html"
}
<!-- speeddial.html -->
<!DOCTYPE html>
<html>
<head>
<title>My Speed Dial</title>
<link rel="stylesheet" href="speeddial.css">
</head>
<body>
<div class="speeddial-tile">
<!-- Контент плитки -->
</div>
<script src="speeddial.js"></script>
</body>
</html>
Публикация на addons.opera.com
- Зарегистрироваться на addons.opera.com/developer/
- Загрузить ZIP-архив расширения
- Заполнить описание, категорию, скриншоты (минимум 612×408 px)
- Дождаться ревью (5–10 рабочих дней — Opera проверяет вручную)
Opera принимает расширения только в формате ZIP, без .crx. Требования к иконкам: 64×64 и 128×128 PNG.
Тестирование
# opera://extensions/ → Режим разработчика → Загрузить распакованное расширение
# Или через командную строку (Opera должен быть установлен):
opera --load-extension=/path/to/extension
Кроссбраузерность: Opera + Chrome один пакет
Поскольку Opera совместима с Chrome на 100% (кроме специфичных sidebar/speeddial), можно публиковать одно расширение в обоих магазинах:
// Определяем браузер для условной логики
function getBrowser() {
const ua = navigator.userAgent;
if (ua.includes('OPR/') || ua.includes('Opera/')) return 'opera';
if (ua.includes('Edg/')) return 'edge';
return 'chrome';
}
// Активируем Opera-специфичные функции
if (getBrowser() === 'opera' && typeof opr !== 'undefined') {
initSidebar();
}
Сроки
Адаптация Chrome Extension для Opera Add-ons (публикация + ревью) — 1–2 рабочих дня. Расширение с Opera Sidebar и Speed Dial интеграцией — 3–5 дней дополнительно к базовой функциональности.







