WebExtensions
시작하기
Extension(이하 확장기능)은 브라우저의 기능을 확장하고 수정할 수 있습니다. Firefox 를 위한 확장기능은 확장 기능 개발을 위한 크로스 브라우저 시스템인 WebExtension API를 이용하여 만들어졌습니다. 이 시스템은 Google Chrome, Opera 및 W3C Draft Community Group에서 지원하는 extension API 와 대부분 호환됩니다. 그러므로 Google Chrome과 Opera를 대상으로 만들어진 확장기능은 조금만 수정하면 대부분 Firefox나 Microsoft Edge에서도 동작합니다. 또한 extension API는 멀티프로세스 Firefox와도 완벽하게 호환됩니다.
질문 혹은 아이디어가 있거나, 기존 Extension을 WebExtensions API로 마이그레이션 할 때 도움이 필요하다면 dev-addons 메일링 리스트나 IRC의 #webextensions를 통해 알려주세요.
개념
- JavaScript API 일람
- Content scripts
- 주소패턴
- 파일과 상호작용하기
- 여러 언어로 제공하기
- 보안 유의사항들
- 보안 정책
- 다른 프로그램과 상호작용하기
- 개발자 도구 API 사용하기
- 상호작용 명세 만들기
- 사용자와 상호작용하기
- 확장기능의 생애주기
사용자 인터페이스
- 개괄
- 도구모음 버튼
- 도구모음 버튼과 팝업
- 주소창 버튼
- 주소창 버튼과 팝업
- 상세 메뉴 항목
- 사이드바
- 설정 페이지
- 확장기능 페이지
- 알림
- 주소창 자동추천
- 개발자 도구 패널
- 브라우저 스타일
기능 구현
- HTTP 요청 가로채기
- 웹 페이지 수정하기
- 도구모음에 버튼 추가하기
- 설정 페이지 구성하기
- 클립보드와 상호작용하기
- Tabs API 사용하기
- Bookmarks API 사용하기
- Cookies API 사용하기
- contextual identities 사용하기
- 외부 요소 삽입하기
다른 브라우저에서 옮겨오기
- 파이어폭스의 특성
- 구글 크롬의 확장기능 가져오기
- 오래된 파이어폭스 확장기능 변환하기
- 안드로이드용 파이어폭스로 개발하기
- 썬더볼트로 개발하기
- 섭입된 확장기능
- Add-on SDK와의 비교
- XUL/XPCOM 확장기능과의 비교
- 크롬과의 차이점
- 안드로이드와 PC의 차이점
- API 구현의 차이점
파이어폭스 생애주기
Reference
JavaScript APIs
- action
- alarms
- bookmarks
- browserAction
- browserSettings
- browsingData
- captivePortal
- clipboard
- commands
- contentScripts
- contextualIdentities
- cookies
- devtools
- dns
- downloads
- events
- extension
- extensionTypes
- find
- history
- i18n
- identity
- idle
- management
- menus
- notifications
- omnibox
- pageAction
- permissions
- pkcs11
- privacy
- proxy
- runtime
- scripting
- search
- sessions
- sidebarAction
- storage
- tabs
- theme
- topSites
- types
- userScripts
- webNavigation
- webRequest
- windows
Manifest keys
- action
- author
- background
- browser_action
- browser_specific_settings
- chrome_settings_overrides
- chrome_url_overrides
- commands
- content_scripts
- content_security_policy
- default_locale
- description
- developer
- devtools_page
- dictionaries
- externally_connectable
- homepage_url
- host_permissions
- icons
- incognito
- manifest_version
- name
- offline_enabled
- omnibox
- optional_permissions
- options_page
- options_ui
- page_action
- permissions
- protocol_handlers
- short_name
- sidebar_action
- storage
- theme
- theme_experiment
- user_scripts
- version
- version_name
- web_accessible_resources