수색…


소개

부가 기능 :

파이어 폭스 부가 기능은 일반적으로 확장 기능으로 분류 된 다음 "기타 유형의 파이어 폭스 부가 기능"으로 그룹화됩니다.

확장 프로그램

확장 기능을 사용하면 Firefox의 기능을 추가하거나 수정하여 Firefox를 사용자 정의 할 수 있습니다. 확장 기능으로 수행 할 수있는 유형의 일부는 다음과 같습니다.

  • 특정 웹 사이트의 출현 방식, 콘텐츠 또는 상호 작용 방식을 변경하십시오.
  • Firefox 사용자 인터페이스 사용자 정의
  • Firefox에 추가 기능 추가
  • 기존 Firefox 기능의 작동 방식 변경

파이어 폭스 확장 기능은 주로 자바 스크립트 API를 추가하여 자바 스크립트로 작성됩니다.

WebExtensions가 아닌 모든 유형의 확장 프로그램의 사용 중단 및 제거

파이어 폭스 부가 기능, 특히 확장 기능은 현재 순간적으로 유동적입니다. Mozilla는 WebExtensions를 제외한 모든 유형의 Firefox 확장 기능을 더 이상 사용하지 않으며, WebExtensions가 아닌 모든 확장 기능은 Firefox 57 (2017-11-14에 예정)에서 비활성화 될 것이라고 발표하고 확인했습니다.

확장의 유형

파이어 폭스에는 네 가지 유형의 확장 기능이 있습니다 (모두 애드온이라고 함).

  • WebExtensions : 앞으로 확장 될 WebExtensions는 지원 될 유일한 Firefox 확장 유형입니다. 이러한 추가 기능은 manifest.json 파일로 설명됩니다. 이 API는 Google 크롬 확장 프로그램에 사용 된 것과 유사합니다. 이러한 부가 기능은 자바 스크립트 외에도 HTML과 CSS를 사용합니다. Mozilla는이 API가 Firefox 확장의 미래라고 말했지만이 API는 아직 개발 중에 있습니다. 지금은 Firefox Developer Edition 또는 Firefox Nightly로 WebExtension 부가 기능을 개발하고 테스트하는 것이 가장 좋습니다. 또한 사용하고자하는 기능에 필요한 Firefox 버전을주의해서 기록해야합니다. 이 정보는 MDN 문서 페이지의 "브라우저 호환성"섹션에 있습니다.

    WebExtensions는 다른 세 가지 유형의 확장과 크게 다른 API를 사용합니다. 의도적으로 다른 애드온 유형에서 제공하는 인터페이스를 사용할 수 없습니다.

  • 부가 기능 SDK : [ deprecated; 제거 예정 ]이 추가 기능은 jpm init 을 실행하여 처음 생성 된 package.json 파일로 설명됩니다. 이러한 확장 기능은 종종 Firefox와의 인터페이스를 위해 하이 레벨 또는 로우 레벨 API를로드하기 위해 require() 를 사용 require() . 이러한 부가 기능은 자바 스크립트 외에도 HTML과 CSS를 사용합니다. 현재이 추가 기능은 jpm run 테스트하기 위해로드 할 때 부트 스트랩 된 확장으로 래핑되거나 배포를 위해 (즉, AMO / Mozilla로 업로드) jpm xpi xpi.xpi 파일로 통합됩니다. 즉, SDK 래퍼를 사용하여 부트 스트랩 된 확장입니다.

    Mozilla는 확장 기능이 require("chrome") 사용하지 않거나 XUL , XPCOMXBL 에 의존하는 한 Add-on SDK 기반 확장을 계속 지원할 것입니다.

    부트 스트랩 된 확장 프로그램에서 수행 할 수있는 대부분의 작업은 애드온 SDK 기반으로 수행 할 수 있습니다. 그러나 많은 것들이 SDK를 우회하여 애드온 SDK 사용의 많은 부분을 몰수합니다.

  • 부트 스트랩 : [ 더 이상 사용되지 않습니다. 제거 예정 ] 이러한 확장은 애드온을로드 / 언로드하기 위해 응용 프로그램을 다시 시작하지 않아도되는 첫 번째 유형의 Mozilla 확장 이었기 때문에 일반적으로 "재시작 없음"이라고도합니다. 그러나, 재시작 (restartless)은 그들이 어떻게 기능하는지에 대한 기술자이다. 이 유형의 추가 기능의 이름으로 "restartless"를 사용하는 것은 혼란 스럽습니다. 추가 기능 SDK 및 WebExtension 추가 기능은 추가 기능을로드하거나 언로드 할 때 응용 프로그램을 다시 시작할 필요가 없기 때문입니다. 이러한 이유로,이 유형의 애드온의 이름으로 더 이상 "재시작"을 사용하지 않는 경향이 있습니다.

    이러한 부가 기능은 자바 스크립트 외에도 HTML과 CSS를 사용합니다. 또한 많은 사람들이 XUL을 사용하여 Firefox와 상호 작용합니다.

    이러한 추가 기능에는 bootstrap.js 라는 JavaScript 파일이 있으며이 파일에는 추가 기능 startup() , shutdown() , install()uninstall() 에 대해 호출되는 진입 점 (함수) 이 있어야합니다.

    이 애드온에는 애드온을 설명하는 install.rdf 파일이 있습니다. 일반적으로 항상 그런 것은 아니지만 확장 기능의 파일과 디렉토리가 Mozilla 응용 프로그램 (예 : Firefox)과 관련되는 방법을 설명하는 chrome.manifest 파일을 포함합니다.

    오버레이 / XUL / 레거시 확장에서 수행 할 수있는 대부분의 작업은 부트 스트랩 된 추가 기능에서 수행 할 수 있습니다. 추가 기능 SDK에서 수행 할 수있는 모든 작업은 부트 스트랩 된 확장에서 수행 할 수 있습니다 (추가 기능 SDK 확장은 일부 JavaScript 기반 API 레이어가있는 부트 스트랩 된 추가 기능입니다).

    모질라는 " XUL , XPCOMXBL 에 의존하는 추가 기능" 을 비추 예정 입니다. 모든 부트 스트랩 애드온이 이러한 기술에 의존하는 것은 아니지만 부트 스트랩 된 애드온이 애드온 SDK 및 WebExtension 애드온보다 낮은 레벨에서 작동하는 경향이 있습니다. 따라서이 기술을 더 많이 사용하게됩니다. 모든 부트 스트래핑 된 추가 기능이 더 이상 사용되지 않도록 계획되어 있다고 말하는 사람들이 있지만 분명하지는 않습니다. 어쨌든 Add-on SDK 확장은 require("chrome") 을 사용하지 않거나 XUL, XPCOM 또는 XBL을 사용하지 않는 한 더 이상 사용되지 않으며 모든 추가 기능 SDK 확장은 SDK 래퍼와 함께 부트 스트랩 된 확장입니다 .

  • 오버레이 / XUL / 레거시 : [ 더 이상 사용되지 않습니다. 제거 예정 ]이 추가 기능에는 추가 기능을 설명하는 install.rdf 파일과 추가 기능 파일이 응용 프로그램의 파일과 관련되는 방식 (예 : 오버레이)을 설명하는 chrome.manifest 파일이 포함됩니다. 애플리케이션의 애드온 기능이 chrome.manifest 파일에 설명 된 관계에 완전히 의존하는지 여부. 유일한 예외는 install.rdf 파일에 표시된 확장 기능 아이콘과 확장 기능 옵션을 설명하는 파일과 같은 몇 가지 항목입니다. 이러한 확장 기능은 매우 낮은 수준에서 응용 프로그램 (예 : Firefox)과 상호 작용합니다. 이렇게하면 응용 프로그램이 변경 될 때 중단 될 가능성이 커집니다.

    이러한 부가 기능은 Javascript 외에도 XUL, HTML 및 CSS를 사용합니다. 일부는 XPCOMXBL 도 사용합니다.

    모든 Overlay / XUL / Legacy 확장 버전은 더 이상 사용되지 않습니다.

다른 유형의 Firefox 부가 기능

대부분의 사람들이 파이어 폭스 부가 기능에 대해 생각할 때 위에서 설명한 확장 기능에 대해 생각하고 있습니다. 그러나 몇 가지 추가 유형의 Firefox 부가 기능이 있습니다.

이 "예제"는 주로 Makyen 's의 stackoverflow 질문에 대한 답변으로 일부 수정 된 상태로 복사됩니다.
이 콘텐트의 일부는 Mozilla Developer Network (MDN)의 Add-on 페이지 에 복사되거나 적어도 추가되었습니다 .
이것은 원래 Makyenfirefox-addon 태그 의 "Remarks"섹션에 게시했습니다. 그런 다음 Ondřej Doněk가 수정하여 "for"를 추가로 삭제했습니다. 새롭게 수행 된 단일 편집에서 "비고"에서 "소개"라는 고정 된 "예제"로 이동되었습니다. 유감스럽게도 이렇게하면 시스템이 속성 정보를 잃어 버리게됩니다.

임시 부가 기능 설치

개발중인 애드온을 테스트하려면 Firefox에 임시로 설치하는 것이 좋습니다. 임시 추가 기능으로 로드하여 그렇게 할 수 있습니다. 그렇게하려면 :

  1. about:debugging
  2. "임시 임시 추가 기능 추가"를 클릭하십시오.
  3. 파일 선택 도구에서 애드온 파일이있는 디렉토리로 이동합니다.
  4. 폴더에있는 파일을 선택하십시오.
  5. "열기"를 클릭하십시오.

다음 애니메이션은 about:debugging 에서 "aaaaaaaaaaaaaaaaaa - demo add-on"이라는 추가 기능을로드하고 추가 기능이 about:addons 표시되는 것을 보여줍니다.

임시 애드온로드 중

임시 추가 기능으로, 압축을 푼 추가 기능 ( .xpi 파일로 패키징 할 추가 기능의 모든 파일을 포함하는 디렉토리) 또는 .png 파일로 압축 된 추가 기능을로드 할 수 있습니다 .xpi 아카이브. 임시 부가 기능에 서명 할 필요가 없습니다. 임시 애드온은 수동으로 제거되거나 Firefox가 다시 시작될 때까지 설치된 상태로 유지됩니다.

Mozilla 문서 : Firefox에서의 임시 설치

WebExtensions

WebExtensions는 임시 부가 기능으로로드 할 수 있습니다. 이는 추가 기능 파일을 압축 해제하거나 .xpi 파일로 패키지화하여 수행 할 수 있습니다.

Firefox Add-on SDK

jpm xpi xpi.xpi 파일에 패키지하지 않고 임시 부가 기능으로 Firefox 부가 기능 SDK 확장을로드 할 수 없습니다. 일반적으로 jpm run 을 사용하여 Firefox Add-on SDK 확장을 테스트합니다.

Add-on SDK 확장을 위해 일반적으로 편집되는 파일은 몇 가지 추가 래핑 기능을 사용하지 않고 전체 확장을하지 않으며 package.json 파일은 install.rdf 파일 및 chrome.manifest 파일로 변환됩니다. 이 프로세스는 Firefox에서 이해할 수있는 부가 기능 SDK 확장을 부트 스트랩 / 재시작 기능에 추가합니다. 이 프로세스가 없으면 Firefox는 부가 기능을로드 할 수 없습니다. 이 프로세스는 jpm xpi xpi 에 의해 수행되어 압축 된 .xpi 파일이됩니다. jpm run 을 실행하면이 프로세스도 수행되지만 결과 파일을 임시 위치에 저장하고 애드온이 설치된 Firefox를 호출합니다.

부트 스트랩 / Restartless

Bootstrap / Restartless 애드온은 임시 애드온으로로드 할 수 있습니다. 이는 추가 기능 파일을 압축 해제하거나 .xpi 파일로 패키지화하여 수행 할 수 있습니다.

레거시 / 오버레이 / XUL

레거시 / 오버레이 / XUL 추가 기능은 임시 추가 기능으로로드 할 수 없습니다 .

서명되지 않은 애드온 설치

Firefox의 Release 또는 Beta 버전에 일반 부가 기능으로 Extension을 설치하려면 버전 48 이상인 경우 Extension 에 Mozilla서명 해야합니다 . 연장은 AMO제출하여 서명합니다. 서명이되면 확장 기능은 지원하는 모든 Firefox 버전에 설치할 수 있습니다. 버전 43 이전의 Firefox 버전의 경우 Mozilla에서 확장 프로그램을 서명하지 않아도됩니다. 확장 기능 이외의 추가 기능 유형은 Mozilla에서 서명 할 필요가 없습니다.

about:config 에서 xpinstall.signatures.requiredfalse 로 설정하여 다른 버전의 Firefox (예 : Firefox Developer Edition , Firefox Nightly , Unbranded Beta 또는 Unbranded Release )에 일반 추가 기능으로 서명되지 않은 Extension을 설치할 수 있습니다. 이 옵션을 설정하는 것은 릴리스 및 베타 버전 43-48에서도 효과적이었습니다. 이 옵션을 설정하는 것은 버전 48부터 Firefox의 출시 및 베타 버전에서는 유효하지 않습니다.

추가 기능 개발 중에 서명되지 않은 추가 기능을 설치해야하는 필요성은 임시 추가 기능 으로 확장 프로그램을 설치할 수있게 됨으로써 크게 줄어 들었습니다. 임시 부가 기능에는 서명 할 필요가 없으며 Firefox의 현재 버전에로드 할 수 있습니다. 이름에서 알 수 있듯이 임시 추가 기능의 주요 단점은 일시적이라는 것입니다. Firefox를 다시 시작할 때마다 다시 설치해야합니다. 그러나 임시 추가 기능 대신 추가 기능을 정상이지만 서명되지 않은 추가 기능으로 설치하는 것이 바람직한 경우가 있습니다. Firefox를 다시 시작한 후에도 애드온을 계속 설치해야하는 경우 추가 기능을 서명되지 않은 추가 기능으로 설치해야합니다. 이는 장기적인 사용 테스트 또는 Firefox가 시작될 때 추가 기능이 어떻게 작동하는지 테스트하는 것을 포함하여 다양한 이유로 바람직 할 수 있습니다.

개발 용 애드온 설치

추가 기능은 다음과 같이 설치할 수 있습니다.

  1. 제거 될 때까지 설치된 일반 추가 기능
  2. 임시 부가 기능 ( 확장 기능 만 해당) : Firefox가 다시 시작될 때까지만 설치되거나 이전에 수동으로 제거 할 수 있습니다.
  3. jpm run 사용 ( Add-on SDK 전용) : 애드온이로드 된 임시 프로필을 사용하여 Firefox를 자동으로 실행합니다.
  4. web-ext run ( WebExtensions 만 해당) : 추가 기능을 임시 부가 기능으로로드 한 임시 프로필을 사용하여 Firefox를 자동으로 실행합니다. 기본적으로 확장 파일에서 변경 사항을 모니터링하고 파일이 변경되면 자동으로 확장 프로그램을 다시로드합니다.

일반 부가 기능

패키지 확장 (즉, .xpi 파일)을 설치하는 것은 원하는 프로파일을 실행하는 Firefox 창으로 드래그 앤 드롭하는 간단한 작업입니다. 또한 AMO 에서 확장 프로그램을 다운로드하여 직접 설치할 수도 있습니다. 목표 (하나의 프로필, 모든 프로필, 모든 사용자, OS 등)에 따라 확장 프로그램설치 하는 방법에 대한 다른 옵션이 있습니다.

이러한 다른 옵션에는 특정 버전의 Firefox 사용자 또는 특정 사용자의 모든 프로필에 대해 .xpi 파일을 설치할 수있는 프로필 디렉토리 외부의 다양한 디렉토리가 포함됩니다. Windows에서는 Windows 레지스트리에 키를 추가하여 확장을 설치할 수도 있습니다. 일반적으로이 다른 디렉토리는 현재 작성중인 애드온을 설치할 디렉토리가 아닙니다. 그러나, 이들은 여러분이 사용하는 Firefox 프로필이나 Firefox 버전에로드 된 테스트 / 개발을 지원하기 위해 사용하는 애드온을 가지고 있는지 확인하는 데 사용할 수 있습니다. 예를 들어 .xpi 파일을 <Firefox install directory>/browser/extensions 하면 jpm run (Firefox 부가 기능 SDK 기반 확장 기능 테스트 용)에서 만든 임시 프로필에서도 확장명을 사용할 수 있습니다.

개발 / 테스트 를 위해, 파이어 폭스 확장 프록시 파일 (부트 스트랩 / 재시작 및 오버레이 / 재시작을위한 install.rdf 의 확장자 <em:id> 라는 이름의 파일 만들기)을 사용하여 확장자 를 로컬 드라이브의 임의의 디렉토리에 둘 수 있습니다 <em:id> 레거시)를 확장명 파일에 포함 된 디렉토리에 대한 전체 경로가있는 한 줄이 포함 된 프로필의 확장 디렉토리에 추가합니다. 이 방법으로 설치된 확장 프로그램은 거의 항상 서명되지 않습니다 (아래 참조). 따라서이 방법은 Firefox의 릴리스 또는 베타 버전에 확장 프로그램을 설치하려는 경우별로 유용하지 않습니다.

일반 부가 기능 설치시 제한 사항 : 애드온 서명

Firefox의 Release 또는 Beta 버전에 일반 부가 기능으로 Extension을 설치하려면 버전 48 이상인 경우 Extension 에 Mozilla서명 해야합니다 . 연장은 AMO제출하여 서명합니다. 서명이되면 확장 기능은 지원하는 모든 Firefox 버전에 설치할 수 있습니다. 버전 43 이전의 Firefox 버전의 경우 Mozilla에서 확장 프로그램을 서명하지 않아도됩니다. 확장 기능 이외의 추가 기능 유형은 Mozilla에서 서명 할 필요가 없습니다.

about:config 에서 xpinstall.signatures.requiredfalse 로 설정하여 다른 버전의 Firefox (예 : Firefox Developer Edition , Firefox Nightly , Unbranded Beta 또는 Unbranded Release )에 일반 추가 기능으로 서명되지 않은 Extension을 설치할 수 있습니다. 이 옵션을 설정하는 것은 릴리스 및 베타 버전 43-48에서도 효과적이었습니다. 이 옵션을 설정하는 것은 버전 48부터 Firefox의 출시 및 베타 버전에서는 유효하지 않습니다.

그러나 릴리스를 포함하여 모든 버전의 Firefox에서 애드온 서명 검사를 완전히 비활성화 할 수 있습니다. 스택 오버플로 질문에 대한 대답 Firefox 부가 기능에 대한 서명 검사를 비활성화하려면 어떻게합니까? 그렇게하는 방법을 설명합니다.

임시 추가 기능 으로 확장 프로그램을 설치할 수 있으므로 개발 목적으로 서명되지 않은 추가 기능을 설치할 필요가 크게 줄어 듭니다. 임시 부가 기능에는 서명 할 필요가 없으며 Firefox의 현재 버전에로드 할 수 있습니다. 이름에서 알 수 있듯이 임시 추가 기능의 주요 단점은 일시적이라는 것입니다. Firefox를 다시 시작할 때마다 다시 설치해야합니다. 그러나 임시 추가 기능 대신 추가 기능을 정상이지만 서명되지 않은 추가 기능으로 설치하는 것이 바람직한 경우가 있습니다. Firefox를 다시 시작한 후에도 애드온을 계속 설치해야하는 경우 추가 기능을 서명되지 않은 추가 기능으로 설치해야합니다. 이는 장기적인 사용 테스트 또는 Firefox가 시작될 때 추가 기능이 어떻게 작동하는지 테스트하는 것을 포함하여 다양한 이유로 바람직 할 수 있습니다.

임시 부가 기능 ( 확장 기능 만 해당 )

WebExtensions, Firefox Add-on SDK 기반 확장 및 Restartless / Bootstrap 확장은 about:debugging Temporary Add-ons 로 설치할 수 있습니다. 확장 기능은 Firefox의 현재 버전에서 임시 부가 기능으로로드 할 수 있습니다. 임시 추가 기능은 서명 할 필요가 없으며 압축 해제 된 파일 (파일이있는 디렉토리) 또는 압축 된 파일 (예 : .xpi 파일)에서로드 할 수 있습니다.

일시적으로 확장 기능을 설치하는 방법에 대한 자세한 내용 은 임시 추가 기능 설치를 참조하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow