2017-11-06 16 views
1

웹 응용 프로그램과 프린터를 통합하는 NPAPI 플러그인이 있습니다. 기존 NPAPI 플러그인을 새로운 WebExtension 표준으로 이식하는 방법에 대한 자료를 찾고 있습니다.WebExtension에 NPAPI 플러그인 이식

첫 번째 질문은 WebExtension 제한이 무엇입니까? 그렇다면 가능한지 평가 해 보겠습니다.

나의 현재 플러그인을 통해로드 :

<embed id="myprinter" type="application/mozilla-printer-scriptable-plugin" width=200 height=200> 

그리고 우리는(),() 오브젝트의 예에 의해

myprinter.print 노출 방법을 사용하여 플러그인 myprinter.clear을 상호 작용할 수 있습니다 myprinter.render (이미지 URL)

그리고 속성

myprinter.status, myprinter.retcode는

플러그인은 이미지를 인쇄 얼룩말 프린터의 이전 버전과 상호 작용한다.

현재 NPAPI가 내부적으로 어떻게 작동하는지에 대한 지식은 현재 개발자가 다른 확장 기능을 작성했기 때문에 제한적입니다.

답변

1

NPAPI 모델은 DLL이며 코드를 직접로드하여 노출 할 수 있습니다.

WebExtension 모델에서는 더 이상이 기능을 사용할 수 없습니다. 가장 가까운 대안은 Native Messaging입니다 - DLL을로드하는 대신 브라우저가 기본 호스트 프로세스를 시작하고 STDIO를 통해 서식이 지정된 메시지를 중계합니다.

  1. 당신은 기본 호스트 쓰기 "래퍼"DLL을로드하고 메서드를 호출하고 크롬은을 사용하여 대화 할 준비가되어 :

    그래서 이론적으로, 아키텍처는 다음과 같이 될 것이다 네이티브 메시징 프로토콜.

  2. 네이티브 호스트와 대화하는 배경 페이지가있는 확장 프로그램을 작성합니다.

  3. 노출 된 메서드가 같은 myprinter 개체를 페이지의 네임 스페이스에 삽입하고 요청을 백그라운드 페이지로 릴레이하는 콘텐츠 스크립트를 작성합니다.

그래서 : → DLL → 프린터

+1

이 내용 스크립트 → 배경 스크립트 → 기본 호스트 "래퍼"→ myprinter을 주조 →

페이지 FireBreath 2 방향 – taxilian

+0

@Xan 감사를 사용하는 방법 – sakhunzai

+0

@Xan, 시작하기위한 모든 리소스를 제안 하시겠습니까? – sakhunzai