이번에 새로 추가된 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 를 읽는 방법이 있나요?
-
- 서포터즈
- Posts: 168
- Joined: 2005 02 17 00:49 53
- Location: 구미
- Contact:
자기 ID를 알아낼 방법은 없는 것 같습니다.
근데 확장기능을 새로 깔거나 업데이트하면 기존 디렉토리를 덮어쓰는 게 아니고 없애고 새로 만듭니다. DB에 어떤 데이터가 들어갈지 모르지만 계속 쓰이는 거라면 매번 업데이트할 때마다 초기화되겠죠.가짜집시 wrote:DB는 XPI 파일과 함께 이미 스키마를 다 구성해놓은 상태로 배포하고, chrome 디렉토리에 넣어놓고 쓰고자 합니다.
그리고 chrome의 content 디렉토리에 넣어두면 <확장이름>/content/<DB>으로 접근하는 게 더 쉬울텐데요.
Who is online
Users browsing this forum: No registered users and 0 guests