11페이지

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

게시됨: 2006 12 18 19:53 29
작성자 가짜집시
이번에 새로 추가된 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를 알아낼 방법이 없다는 것도 이상한 일이고 말입니다.

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

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

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