1. A SecurityError occurred: Error #2060 에러의 원인


SWF <-> JS 간의 통신을 하기위해 ExternalInterface.call 을 사용하는데, 보안설정을 해줬음에도 유독 Chrome에서만 security error가 발생하였습니다. 분명 보안설정까지 깔끔하게 해 주었고, 다른 브라우져(IE, FireFox, Safari)에서 테스트를 해보아도 아무 이상없이 잘 돌아갔었습니다.  문제발생의 원인은 Chrome에서 swf파일을 읽어올때 쓰이는 Flash Player가 두개가 설치가 되어있었습니다. 


* 주소창에 chrome://plugins/ 


두개가 설치된것은 현재(2013.12) Chrome에서 쓰이는 Plug-in기술은 두가지가 있는데, 두가지 모두의 형태로 설치가 되어있었습니다.



2. Chrome의 Plug-in 모델 PPAPI(Pepper API), 그리고 NPAPI(Netscape Plugin API)


그렇다면 왜 Chrome은 Plug-in 기술을 두가지를 쓰고 있을까요? 그 이유는 바로 Plug-in기술이 과도기에 있기 때문입니다. 

현재(2013.12) 가장 널리 쓰이고 있는 Plug-in아키텍쳐는 NPAPI라는 기술입니다.  하지만 NPAPI는 구Netscape가 만든 것으로 낡은 기술이라, Google은 새로운 Plug-in의 필요성을 느끼게되었고 Adobe와 손을잡고 만든것이 바로 PPAPI입니다.   그리고 2013년 9월, 구글은 크롬에서 NPAPI는 2014년중에 중단하겠다고 발표하였고, 모질라 FireFox에서도 PPAPI가 지원이 될 예정입니다. 그리고 당연히 Flash Player도 PPAPI형태로 설치가 가능합니다.

[참고] NPAPI WIKIPEDIA : http://en.wikipedia.org/wiki/NPAPI



3. 그럼 현재 PPAPI를 지원하지 않는 브라우저는?


PPAPI를 다른 브라우져에서 사용하려면 pepper.js라는 놈을 사용하면 됩니다. pepper.js는 Emscripten를 이용해서 pepperAPI를 Chrome뿐만 아니라 Firefox, Internet Explorer, Safari 등 대부분의 브라우져에서 사용할 수 있게하는 자바스크립트 라이브러리입니다.    다만, 현재(2013.12) 한참 개발중이라 버그가 있을 수도 있다고 하네요.    

[참고] http://trypepperjs.appspot.com/



4. 해결방안


보안설정을 똑바로 하셨다면, PPAPI방식으로 설치된 Flash Player를 끄면 에러없이 잘 됩니다.  

그런데 문제는 고객들의 Complain.... OTL   



[참고] 구글 크롬 플로그인 지원 중단과 어도비 플래시 - 열이아빠님의 글 : http://koko8829.tistory.com/1383

AND