5

최근에 FireBreath 프레임 워크를 사용하여 만든 NPAPI 플러그인을 사용하는 Google 크롬 확장을 개발했습니다. 방금 Google이 곧 이러한 유형의 플러그인을 중단하고 결국에는이를 사용하는 기존의 모든 확장을 금지 할 것임을 알게되었습니다. 그래서, 결국 NaCl/PPAPI 아키텍처로 이동하고 싶습니다만,이 아키텍처가 NPAPI 플러그인에서 현재 수행중인 작업을 지원할 수 있는지 확실하지 않습니다.NaCl로 이동하는 NPAPI를 사용하는 Google 크롬 확장

현재 NPAPI 플러그인에서 OSX 및 Windows를 지원하고 있습니다. OSX 버전에서, 플러그인은 small 1 line applescript를 실행하는 system() 함수를 실행합니다.

osascript -e 'tell app ... 

Windows 버전에서는 COM 라이브러리의 기능을 실행합니다. 두 버전 모두 똑같은 일을합니다. 내가 가지고있는 또 다른 옵션은 파이썬 스크립트를 실행하는 것이다. 만약이 루트를 사용했다면 파이썬을 네이티브 컴포넌트에 임베드하고 싶을 것이다.

이 중 NaCl/PPAPI를 사용할 수 있습니까?

답변

3

확장 기능을 이미 사용하고 있으므로 NPAPI 사용을 대신하여 Native Messaging을 볼 수 있습니다.

+0

상호 작용하는 프로세스가 지원하지 않기 때문에 기본 메시징이 작동하지 않습니다. –

+0

NPAPI 플러그인을 개발했다고하셨습니다. 네이티브 메시징 모델에서 확장자가 처리하는 프로세스는 NPAPI 플러그인과 동일한 코드와 모든 NPAPI 글루어를 제외하고 기본 네이티브 메시지 처리 대신 생성 한 바이너리가됩니다.궁극적으로 말하고있는 프로세스는 아마도 NPAPI 플러그인으로로드되는 것을 지원하지만 NPAPI가 중개자로 작동하지 않았다는 것을 의미하지는 않습니다. – smorgan

+1

그래, 내가 다리를 만들 수 있다는 것을 알았지 만 이것이 나의 최후의 수단이 될 것이다. NPAPI 구성 요소는 확장 스토어에서 쉽게 설치할 수있는 번들 패키지로 제공됩니다. 브라우저 확장을 설치하고 별도의 기본 구성 요소를 설치하면 도움이 될만한 일이 있습니다. –

5

임의의 system() 함수를 실행하거나 COM 라이브러리에서 임의의 함수를 실행할 수있는 기능은 NPAPI가 더 이상 사용되지 않는 이유입니다. 파이썬 스크립트 (물론 은 NaCl에서 파이썬 스크립트를 실행할 수 있습니다.하지만 system() 함수 나 COM 라이브러리를 호출 할 수는 없습니다).

는 소식이 아니다 : http://www.google.com/googlebooks/chrome/small_30.html

그것도 당시이 상황은 될 수 있음을 분명했다 : 크롬 릴리스 NPAPI 플러그인의 날에 크롬 만화에서 언급 된 바와 같이 제한하고 그것은 큰 문제가 있다고 오랫동안 용인되었습니다. 플러그인은 5 년 동안 용인되었습니다. 왜냐하면 중요한 것들 중 일부는 그것들 없이는 단순하지 않았기 때문입니다. 그러나 지금은 플러그인을 죽이고 브라우저에서 OS에 직접 액세스 할 수있는 시간이 없도록해야합니다.

적절한 API가 없기 때문에 현재 브라우저에서 구현할 수없는 기능을 구현하고 싶다면 chromium-dev에서 chroma-dev에 대해 물어보고이 API를 Chromium 및 기타 브라우저에 추가하는 것입니다.). 예를 들어 최근에 COM 포트 (라이브러리 아님)에 대한 액세스가 추가되었습니다 (http://developer.chrome.com/apps/app_hardware.html 참조).

+0

플러그인이 현재 실제로 수행하는 것은 skype와 상호 작용합니다. 그것은 skype 상태를 설정합니다. 그 실망스러운 나는 더 이상 재고 크롬 브라우저에서 이것을 할 수 없을 것입니다. 피드백에 감사 드리며, 나는 chromium-dev에 대해 물어볼 것입니다. –

+1

우리는 브라우저가 모든 것을 처리 할 수있는 날로부터 몇 년 떨어져 있습니다. 파일 시스템 액세스 (예 : 현재 Sandbox JS API는 Autocad와 같은 실제 앱에서 파일을 편집해야하는 경우 작동하지 않습니다. 모든 Google의 결정은 기업에서 IE를 유지하는 것입니다. –

0

브라우저와 응용 프로그램 사이에 상호 작용이 필요하지 않으면 외부 프로토콜 지원을 사용할 수 있습니다. Windows의 레지스트리에 프로토콜을 등록해야합니다. OSX에서 외부 프로토콜이 어떻게 작동하는지 모르겠습니다. 사용자가 외부 프로토콜 링크를 클릭하면 Chrome이 사용자가 응용 프로그램을 시작할 수있는 대화 상자를 표시합니다.