확장앱 API
네이버 웨일은 확장앱 개발을 위해 아래와 같이 다양한 확장앱 API를 제공합니다.
네이버 웨일 전용 API를 제외한 대부분의 API는 Chrome 확장앱 API와 공통적으로 사용할 수 있습니다.
API | 분류 | 설명 | Chrome API와 다른점 |
---|---|---|---|
whale.alarms | 서비스 | 지정한 주기 혹은 시간에 코드가 실행되도록 예약합니다 | 없음 |
whale.bookmarks | 브라우저 기능 | 북마크의 생성, 삭제, 수정 및 폴더 변경 등 북마크에 관한 기능을 제공합니다. 이 API를 이용해 북마크 관리자를 만들 수 있습니다. | 없음 |
whale.action | UI | 주소창 오른쪽 툴바 영역에 나타나는 버튼을 제어 할 수 있습니다. 아이콘을 변경하거나 뱃지를 표시할 수도 있고, 팝업이 나타나게 할 수도 있습니다. | 없음 |
whale.browsingData | 설정 | 인터넷 사용 기록을 삭제할 수 있습니다. 설정 > 개인정보 보호 > 인터넷 사용 기록 삭제 영역의 각 항목별 삭제를 수행할 수 있습니다. | 없음 |
whale.commands | 설정 | 확장앱에 단축키를 부여할 수 있습니다. | 없음 |
whale.contentSettings | 설정 | 쿠키, 자바스크립트, 마이크 등 웹 사이트에서 요청한 정보를 제공할 것인지 설정할 수 있습니다. 설정 > 개인정보 보호 > 콘텐츠 설정에서 확인할 수 있는 항목을 제어할 수 있습니다. | 없음 |
whale.contextMenus | UI | 마우스 오른쪽 버튼을 클릭하면 나타나는 콘텍스트 메뉴를 만들 수 있습니다. 페이지, 링크, 이미지 등 클릭한 위치에 따라 서로 다른 메뉴를 표시할 수 있습니다. | 없음 |
whale.cookies | 서비스 | 쿠키를 제어하거나 변경시 이벤트를 수신할 수 있습니다 | 없음 |
whale.debugger | 개발자도구 | 특정 탭의 네트워크 통신, JavaScript 디버깅, DOM · CSS 변형 등 디버그를 위한 원격 디버깅 프로토콜을 사용할 수 있습니다. sendCommand() 메소드와 onEvent 핸들러 함수를 이용해 개발자도구에서 제공하는 개별 기능을 명령 단위로 수행할 수 있습니다. |
없음 |
whale.declarativeContent | 서비스 | 웹 페이지에 대한 접근 권한 요청없이 특정 페이지의 콘텐트 혹은 상태에 의존적인 동작을 수행할 수 있습니다. | 없음 |
whale.declarativeNetRequest | 서비스 | 선언적 규칙을 지정하여 네트워크 요청을 차단하거나 수정할 수 있습니다. | 없음 |
whale.desktopCapture | 캡쳐 | 화면, 윈도우 또는 탭의 콘텐츠를 캡쳐할 수 있습니다. | 없음 |
whale.devtools.inspectedWindow | 개발자도구 | 개발자도구를 이용한 검사(Inspect)가 진행중인 윈도우에서 코드를 실행하거나 페이지를 새로고침 하는 등의 작업을 수행할 수 있습니다. | 없음 |
whale.devtools.network | 개발자도구 | 개발자도구 > 네트워크 패널에서 수신하는 정보들을 수신할 수 있습니다. | 없음 |
whale.devtools.panels | 개발자도구 | 개발자도구에 새로운 패널을 추가하거나 기존의 패널에 접근할 수 있습니다. | 없음 |
whale.devtools.recorder | 개발자도구 | 개발자도구 > Recorder 패널을 확장할 수 있습니다. | 없음 |
whale.downloads | 브라우저 기능 | 지정한 URL의 파일 다운로드, 진행중인 다운로드의 제어 및 검색 등 파일 다운로드에 관련된 기능을 사용할 수 있습니다. | 없음 |
whale.events | 자료형 | 웨일 브라우저 API에서 사용되는 공통 이벤트 자료형을 포함하는 네임스페이스입니다. | 없음 |
whale.extension | 확장앱 | 서로 다른 확장앱 사이에 메시지를 교환하거나, 현재 확장앱에 관한 정보를 얻을 수 있습니다. | 없음 |
whale.fontSettings | 설정 | 글꼴 관련 설정을 제어할 수 있습니다. | 없음 |
whale.history | 브라우저 기능 | 방문 기록의 생성, 삭제 및 검색 등 방문 기록에 관한 기능을 제공합니다. 이 API를 이용해 방문 기록 페이지를 만들 수 있습니다. | 없음 |
whale.i18n | 유틸리티 | 다국어 지원을 위한 기능을 제공합니다. | 없음 |
whale.identity | 서비스 | Google 계정을 OAuth2 연동하기 위한 API입니다. 웨일에서는 launchWebAuthFlow() 만 사용할 수 있습니다. |
부분 지원 |
whale.idle | 서비스 | 시스템의 유휴 상태(Idle) 여부를 확인하거나 변화를 감지할 수 있습니다. | 없음 |
whale.management | 확장앱 | 설치되어 있는 확장앱 정보를 얻어 제어할 수 있습니다. | 없음 |
whale.notifications | UI | 시스템 트레이에 알림창을 표시할 수 있습니다. | 없음 |
whale.offscreen | 유틸리티 | 서비스 워커에서 DOM API를 사용하기 위해 화면에 보이지 않는(오프스크린) 문서를 만들고 관리할 수 있습니다. | 없음 |
whale.omnibox | UI | 주소창에서 특정 키워드를 입력하면 확장앱이 주소창 영역에 관여하게 할 수 있습니다. | 없음 |
whale.pageCapture | 캡쳐 | 지정한 탭의 웹 페이지를 MHTML 형식으로 저장할 수 있습니다. | 없음 |
whale.permissions | 확장앱 | 매니페스트에 optional_permissions 로 정의한 추가 권한을 사용자에게 요청할 수 있습니다 |
없음 |
whale.power | 설정 | 전원 관리 기능을 제어할 수 있습니다. | 없음 |
whale.privacy | 설정 | 개인정보 보호 관련 설정을 제어할 수 있습니다. | 없음 |
whale.proxy | 설정 | 프록시 관련 설정을 제어할 수 있습니다. | 없음 |
whale.runtime | 확장앱 | 백그라운드 페이지 검색, 매니페스트 확인 및 확장앱 수명주기에 관한 이벤트 수신, 메시지 교환 등의 기능을 제공합니다. | 없음 |
whale.scripting | 유틸리티 | 다양한 컨텍스트에서 스크립트를 실행합니다. | 없음 |
whale.sessions | 서비스 | 같은 계정으로 웨일을 사용중인 다른 브라우징 세션에 관련된 기능을 제공합니다. | 지원되지 않음 |
whale.storage | 서비스 | 데이터 저장소 기능을 제공합니다. 데이터 변경시 이벤트를 수신할 수 있습니다. 이 API를 이용해 저장한 데이터는 쿠키, 웹 스토리지 등 인터넷 사용 기록과는 별도로 관리됩니다. | 없음 |
whale.system.cpu | 시스템 | 시스템 CPU 관련 정보를 얻을 수 있습니다. | 없음 |
whale.system.memory | 시스템 | 시스템 메모리 관련 정보를 얻을 수 있습니다. | 없음 |
whale.system.storage | 시스템 | 시스템 연결된 이동식 저장매체에 대한 정보를 얻을 수 있습니다. 새로운 이동식 저장매체가 연결되거나, 이미 연결되어 있던 매체가 연결 해제되는 경우 이벤트를 수신할 수 있습니다. | 없음 |
whale.tabCapture | 탭 · 창 | 지정한 탭의 미디어 스트림을 캡쳐할 수 있습니다 | 없음 |
whale.tabs | 탭 · 창 | 새로운 탭을 생성하거나 이미 생성된 탭을 제어할 수 있습니다. | 없음 |
whale.topSites | 브라우저 기능 | 새 탭 페이지의 "자주 가는 사이트" 목록을 얻거나 수정, 검색 할 수 있습니다. | 삭제, 수정, 검색 등 추가 메소드 제공 |
whale.types | 자료형 | 웨일 브라우저 API에서 사용되는 자료형을 포함하고 있는 네임스페이스입니다. | 없음 |
whale.webNavigation | 네트워크 | 웹 탐색 요청을 수신하여 제어할 수 있습니다. | 없음 |
whale.webRequest | 네트워크 | 웹 요청을 감지하여 차단, 수정 및 간섭할 수 있습니다. | 없음 |
whale.windows | 탭 · 창 | 새로운 창을 생성하거나 이미 생성된 창을 제어할 수 있습니다. | 없음 |
whale.sidebarAction | UI | 사이드바 영역에 버튼을 표시할 수 있습니다. action 과 비슷하며 사이드바 영역에 표시한다는 점이 다릅니다. |
웨일 전용 |
호환성
네이버 웨일 브라우저 API는 Google Chrome 브라우저를 포함하여 Mozilla FireFox, Microsoft Edge 등이 지원하는 브라우저 호환 확장앱 API 규격(W3C Draft Community Group Browser Extensions API)을 지원합니다. 특히 네이버 웨일의 whale.*
네임스페이스 뿐 아니라 chrome.*
네임스페이스도 지원하므로 Google 서비스 연동이 필요한 일부 Chrome 전용 API를 사용하는 경우가 아니라면 기존 Chrome 확장 프로그램도 수정없이 네이버 웨일에서 동작할 수 있습니다.
제약사항
콘텐츠 스크립트는 일부 API만 제한적으로 사용할 수 있습니다. 매니페스트에 필요한 권한을 설정했음에도 해당 API가 존재하지 않는다는 오류를 만나는 경우 콘텐츠 스크립트에서 사용 가능한 API인지 확인해 주세요.
매니페스트 →