google-chrome-extension
Firefox와의 이식
수색…
비고
48 이전의 Firefox 버전을 사용하는 경우
manifest.json
응용 프로그램이라는 추가 키가 필요합니다.
"applications": {
"gecko": {
"id": "[email protected]",
"strict_min_version": "42.0",
"strict_max_version": "50.*",
"update_url": "https://example.com/updates.json"
}
}
노트 :
확장 서명 :
Firefox 48이 출시되면 환경 설정을 사용하여 릴리스 및 베타 채널 빌드에서 확장 서명을 더 이상 비활성화 할 수 없습니다. 확장명 서명이 발표되었을 때 설명 된대로이 기본 설정을 지원하는 특수 빌드를 게시하여 개발자가 베타 및 릴리스 빌드가 생성 된 코드를 계속 테스트 할 수 있도록합니다.
WebExtensions
상태 :
WebExtensions는 현재 알파 상태로 실험 중입니다. Firefox 46에서 다른 부가 기능과 마찬가지로 Firefox 사용자에게 WebExtensions를 게시 할 수 있습니다. 우리는 Firefox 48에서 최초의 안정적인 릴리즈를 목표로하고 있습니다.
UPD : Firefox 48이 02.08.2016을 릴리스했습니다.
모래밭:
API 지원 상태 - API 및 해당 상태 목록입니다.
WebExtensions - JavaScript API, manifest.json의 키, 자습서 등
WebExtensions를 통한 이식
/에서 Firefox 확장 기능을 이식하는 것에 대해 이야기하기 전에 WebExtensions
가 무엇인지 알아야합니다.
WebExtensions
- Firefox 확장을 생성하기위한 API를 나타내는 플랫폼입니다.
Chromium 과 동일한 확장 아키텍처를 사용하기 때문에이 API는 Chrome 및 Opera (Chromium 기반 Opera)의 API와 여러면에서 호환됩니다. 대부분의 경우 이러한 브라우저 용으로 개발 된 확장 프로그램은 Firefox 에서 약간의 변경없이 또는 전혀 변경없이 작동합니다.
MDN은 새로운 확장에 WebExtension
을 사용하도록 권장 합니다.
앞으로 WebExtensions가 Firefox 부가 기능을 개발하는 데 권장되는 방법이 될 것이며 다른 시스템은 더 이상 사용되지 않을 것입니다.
앞에서 언급했듯이 Firefox에 확장 기능을 포팅하려면 확장 기능이 어떻게 작성되었는지 알고 있어야합니다.
Firefox 확장 기능 은 WebExtension
, Add-on SDK
또는 XUL
기반으로 할 수 있습니다.
WebExtension을 기반으로하는 호환 가능한 확장
WebExtension
사용할 때 일부 기능은 완전히 또는 부분적으로 지원되므로 비 호환성 목록을 조사해야합니다. 즉, manifest.json
확인해야합니다.
또한 동일한 네임 스페이스 를 사용할 수 있습니다.
현재 모든 chrome. * 네임 스페이스를 통해 모든 API에 액세스 할 수 있습니다. 우리 자신의 API를 추가하기 시작하면 브라우저. * 네임 스페이스에 API를 추가 할 것으로 예상됩니다. 개발자는 기능 감지 기능을 사용하여 브라우저에서 API를 사용할 수 있는지 확인할 수 있습니다. *.
Firefox 및 Google 크롬에서 작동 할 수있는 간단한 확장 프로그램
manifest.json
:
{
"manifest_version": 2,
"name": "StackMirror",
"version": "1.0",
"description": "Mirror reflection of StackOverflow sites",
"icons": {
"48": "icon/myIcon-48.png"
},
"page_action": {
"default_icon": "icon/myIcon-48.png"
},
"background": {
"scripts" : ["js/background/script.js"],
"persistent": false
},
"permissions": ["tabs", "*://*.stackoverflow.com/*"]
}
background
스크립트 :
function startScript(tabId, changeInfo, tab) {
if (tab.url.indexOf("stackoverflow.com") > -1) {
chrome.tabs.executeScript(tabId,
{code: 'document.body.style.transform = "scaleX(-1)";'}, function () {
if (!chrome.runtime.lastError) {
chrome.pageAction.show(tabId);
}
});
}
}
chrome.tabs.onUpdated.addListener(startScript);
표준 zip
파일로 프로젝트를 .xpi
하지만 확장자는 .xpi
입니다.
그런 다음 Firefox 에서 확장 프로그램을로드해야합니다.
메뉴 about:addons
부가 기능을 통해 액세스 할 수있는 about:addons
페이지를 엽니 다.
모든 부가 기능 버튼을 클릭하십시오.
확장 프로그램이로드되면 about:addons
가 다음과 같이 표시됩니다.
Chrome에서 확장 프로그램을로드하는 방법 은 다른 주제 인 - Chrome 확장 프로그램 시작하기를 참조하세요 .
확장 작업의 결과는 두 브라우저 ( Firefox / Chrome )에서 동일합니다.
현재 추가 기능이 Add-on SDK 또는 XUL을 기반으로하는 경우
확장 기능을 포팅 할 때 Add-on SDK
기반으로하는 경우 Add-on SDK
=> WebExtensions
의 비교 표를 살펴 봐야합니다. 이러한 기술은 기능이 비슷하지만 구현이 다르기 때문입니다. 표의 각 섹션은 WebExtension
용 WebExtension
Add-on SDK
에 해당하는 기능을 설명합니다.
비슷한 접근법과 XUL 확장.