발생일: 2013.10.23 키워드: 크롬 익스텐션, Chrome Extension, 배포, 업데이트, auto update 문제: 웹스토어를 통하지 않고 직접 호스팅하는 크롬 익스텐션에 자동 업데이트를 적용하고 싶다.어떻게 하면 될까~? 해결책: http://developer.chrome.com/extensions/autoupdate.html 1. 익스텐션의 `manifest.json`에 `update_url`을 설정한다. 2. 호스팅하고 있는 서버에 `update_url`에 명시한 `xml` 형식의 파일을 올려둔다. 아래와 같은 형식이다. 3. 해당 경로에 패키징한 익스텐션 파일을 업로드한다. 4. 익스텐션이 설치된 각 사용자의 브라우저에서는 주기적(수 시간 단위)으로 `update_url`을 조회해..
발생일: 2013.03.07 문제: 며칠 전 M 과장님이 영어사전 크롬 익스텐션의 신기한 버그를 하나 알려줬다. 과장님이 개발하고 있는 페이지에서 require.js 를 사용하고 있는데,영어사전 익스텐션이 설치되어 있는 경우엔 메인 코드가 두 번 호출된다는 거다. 익스텐션에서도 require.js 를 사용하고 있긴 한데,..require.js 가 두 번 로드되면서 뭔가 충돌이 일어난 것 같다. 정확한 원인이 뭘까? 해결책: 먼저, require.js 가 메인 코드를 가져와 실행하는 과정은 다음과 같다. 1. require.js 가 로드되면, 페이지 내에서 require.js 에서 코드를 초기화할 때,전역 변수인 `requirejs, require, define` 가 이미 존재할 경우 중복 정의하지 않기 ..
발생일: 2012.10.27 문제: 정말 오랜만에 한가한 주말이다.오후부터, 한참을 미뤄뒀던 네이버 영어사전 크롬 익스텐션 리팩토링 작업을 시작했다. 처음 만들었을 때엔 의존성을 해결하기 위해 직접 프레임워크를 만들었었는데,문서도 없고 내멋대로 만든 거라 다른 개발자들이 참여하기도 어려운 것 같았다. 그래서 이번엔 RequireJS를 사용해보려고 한다. 백그라운드 코드부터 작업하기 시작했고, 아무 매끄럽게 잘 적용할 수 있었다.헌데, 컨텐트 스크립트에 적용하려고 하니 좀 문제가 있다. 먼저, 보안 이슈 때문에 파일이 로드되지 않았고,다음엔 스크립트를 로드해와도 제대로 로드되지 않았다. 어떻게 해결하면 될까? 해결책: 컨텐트 스크립트에서 RequireJS를 사용하는 데엔 두 가지 문제가 있었다. 1. 익스..
발생일: 2011.09.24 문제: 이번에 작은 크롬 익스텐션을 만들어봤다. (네이버 영어사전 크롬 익스텐션) 현재 보고 있는 페이지에 스크립트를 추가하고, 검색을 요청하면 크롬 익스텐션에서 비동기로 데이터를 가져와 출력하는 방식이다. 이를 위해 페이지가 로드되면, 스크립트가 head 태그에 삽입되고, 결과를 보여줄 레이어 엘리먼트를 만들어서 document.body에 추가되도록 했는데,.. 특정 페이지에서 레이어가 나오지 않는다. 프레임셋으로 나뉘어진 페이지의 경우엔 body가 존재하지 않아, 엘리먼트를 추가할 수 없는 것이 원인이었다. 웁쓰. 우째해야 할까? 좋은 꼼수를 찾아내서 메모해둔다. 해결책: 익스텐션에서 content_script 를 추가할 때, top 프레임에만 추가할 것인지, 모든 프레임..