본문 바로가기

개발 관련

NPRuntime이란?

플러그인을 개발하려고 한다. 모든 브라우저에서 돌아갈 수 있는...

XPCOM 이건 아직 잘 모르는데, 더이상 지원을 하지 않는다고 한다.

그럼 NPAPI / NPRuntime을 알아야 한다.

 

1. NPAPI (Netscape Plugin Application Programming Interface)

 
- 많은 웹브라우저에서 사용되는 cross-platform plugin architecture
- NPAPI는 예전 넷스케이프에서 지원하던 플러그인개발 api
- MS의 익스플러로한테 밀리긴 했지만 넷스케이프 관련 여러가지들이 모질라로 넘어가면서 어떻게 하다보니
  이 NPAPI는 MS익스플로러를 제외한(몇몇 버전은 된다고 하더라) 파이어폭스, 사파리, 오페라, 크롬에서 지원하게 되었다. 즉 익스플러로를 제외한 브라우저들 아무것에서나 잘 돌아간다는 것이다! 

2. NPRUNTIME?
그렇다면 NPRUNTIME은 뭐하는 물건이냐 하면은 NPAPI의 확장버전이다.
 NPAPI는 예전 넷스케이프에서 지원하던 API이다 보니 현재상황에 따른 기능이 없다.
그 기능이란 플러그인에서 웹브라우저에 명령을 전달할 수 없다는 것이다. 즉 웹브라우저에서 열린 페이지는 플러그인에 명령을 넘길 수 있지만 플러그인은 웹브라우저로 명령을 전달 할 수 없다는 것이다. 이러한 문제를 해결해주는 것이 NPRUNTIME이다.
NPRUNTIME이라고 해서 NPAPI와 API가 완전히 다른것이 아니라 NPAPI + 추가API의 형태이다.

3. Non-scriptable Plugin, Scriptable Plugin?
위에서 언급한 것처럼 플러그인에서 웹브라우저로 명령을 전달할 수 없으면 Non-scriptable Plugin, 할 수 있으면 Scriptable Plugin이라고 한다.

 

 

 

<!--  참고 --

 많은 Browser가 있고, 아래와 같이 다양한 엔진을 사용하고 있다.

 - IE는 Trident 
 - NN, FireFox는 Gecko 
 - 사파리는 Webkit(WebCore) // WebCore는 Webkit 의 HTML 담당이라고 해야 하나... 
 - 오페라는 Presto 
 - 컨커러는 KHTML

 

이렇게 다른 엔진을 사용하기 때문에

같은 코드라도 렌더링을 다르게 하여 브라우저마다 다르게 보인다.

 

(이런 저런 문서들을 보다보면 Gecko라는 단어가 자주 보이는데, 그것 때문에 적어둠)

-->

 

<reference>

[1]. http://en.wikipedia.org/wiki/NPAPI

[2]. http://theweak.tistory.com/1