확장기능 ID 를 읽는 방법이 있나요?

마켓플레이스, 웹 앱 및 부가 기능(Extensions, Theme), 페르소나 등 Mozilla 플랫폼 기반의 애플리케이션 개발자을 위한 게시판입니다.
Post Reply
가짜집시

확장기능 ID 를 읽는 방법이 있나요?

Post by 가짜집시 »

이번에 새로 추가된 sqlite 관련 API로 DB를 만들어 쓰고자 하는 경우입니다. DB는 XPI 파일과 함께 이미 스키마를 다 구성해놓은 상태로 배포하고, chrome 디렉토리에 넣어놓고 쓰고자 합니다.

확장 기능이 설치된 디렉토리 path를 얻어오는게 일단 관건인데, 스니펫들을 뒤지니

var extensionLocation = Components.classes["@mozilla.org/extensions/manager;1"]
.getService(Components.interfaces.nsIExtensionManager)
.getInstallLocation(id)
.getItemLocation(id);

처럼 하면 얻을 수 있었습니다.

문제는 여기 인자로 넣은 id 인데요, 이 id 는 install.rdf 에 넣었던 값인데, 값을 실행중에 얻어오는 방법이 있는지, 아니면 그냥 하드코딩을 해야 하는 건지 모르겠네요.생각해보면 익스텐션이 자기 ID를 알아낼 방법이 없다는 것도 이상한 일이고 말입니다.
화성
서포터즈
서포터즈
Posts: 168
Joined: 2005 02 17 00:49 53
Location: 구미
Contact:

자기 ID를 알아낼 방법은 없는 것 같습니다.

Post by 화성 »

가짜집시 wrote:DB는 XPI 파일과 함께 이미 스키마를 다 구성해놓은 상태로 배포하고, chrome 디렉토리에 넣어놓고 쓰고자 합니다.
근데 확장기능을 새로 깔거나 업데이트하면 기존 디렉토리를 덮어쓰는 게 아니고 없애고 새로 만듭니다. DB에 어떤 데이터가 들어갈지 모르지만 계속 쓰이는 거라면 매번 업데이트할 때마다 초기화되겠죠.

그리고 chrome의 content 디렉토리에 넣어두면 <확장이름>/content/<DB>으로 접근하는 게 더 쉬울텐데요.
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests