tomyun/xeit — pull request #17 by tomyun (2013-06-11 15:57:20+00:00)
Title: Web Worker 기반 구조 변경

일부 PBKDF1/2를 사용하는 메일들은 키를 생성할 때 무척 오래 걸리기 때문에 브라우저가 죽어버린 것 같은 현상이 발생합니다. 이는 CryptoJS의 구조적인 이슈로 [벤치마크](http://jsperf.com/pbkdf2-sjcl-cryptojs)에서도 확인해볼 수 있습니다. 그래도 제일 많은 알고리즘을 지원하는 CryptoJS를 버릴 수 없기 때문에 다른 방식으로 해결해보려고 합니다.

현재 xeit.js에 통으로 들어가있는 코드들을 [Web Worker](http://en.wikipedia.org/wiki/Web_worker)로 분리하여 복호화를 백그라운드로 수행하되, 그동안에 브라우저 UI에서는 대기중 표시를 해주는 것입니다.

코드가 모여 있기 때문에 큰 무리가 없을 것이라고 생각했는데 실제 작업해보니 굉장히 많은 부분을 건들게 되었습니다. 특히 Web Worker의 `importScripts()`를 이용하여 필요한 스크립트만 로딩하려다 보니 플러그인들이 여러 파일들로 쪼개지면서 디렉토리 구조 자체를 흔들었습니다. 그러다보니 각종 설정/초기화 로직들도 덩달아 정리를 하게 되었네요.

그리고 Web Worker랑 직접 연관된 것은 아닌데 Firefox에서 간혹 `height` 속성이 `100%`가 되지 않던 문제를 수정하면서 북마클릿 링크도 살짝 바뀌었습니다. Chrome 확장 수정해주는 김에 다 같이 바꿔주었습니다.

..그렇다고는 해도 눈으로 보기에는 스피너가 돌고 버튼 상태가 바뀐다는 점 정도의 변화 밖에 없겠네요~