2017-11-20 7 views
2

나는 사용자 정의 프로토콜 레지스트리 파이어 폭스에 오래된 애드온이 "linkpassword을 : //"사용자 정의 프로토콜

파이어 폭스 버전은 57 부가 기능은 작동을 중지하고 나는 파이어 폭스 WebExtenstion으로 전체 애드온을 다시 작성해야하기 때문에 .

내 문제는 프로토콜 "linkpassword : //"에 대한 처리기를 등록하는 방법을 찾을 수 없다는 것입니다.

답변

1

Firefox WebExtensions의 manifest.json에있는 "protocol_handlers"섹션을 사용하여 공통 또는 맞춤 프로토콜 핸들러를 등록 할 수 있습니다.

하지만 웹 + 뭔가 또는 내선 + 뭔가와 사용자 정의 프로토콜 핸들러를 접두사가 같은 MDN WebExtensions protocol_handlers의 문서에서 보인다

.

당신은이 같은 "uriTemplate"로 확장의 페이지를 사용하여 확장에있는 링크를 처리 할 수 ​​있습니다 :

"protocol_handlers": [ 
    { 
     "protocol" : "ext+linkpassword", 
     "name"  : "Password Link", 
     "uriTemplate": "html/processLink.html#login=%s" 
    } 
], 
0

현재는 WebExtensions와 linkpassword://에 대한 핸들러를 등록 할 수 없습니다. 현재로서는

은 지정된 허용 된 프로토콜은 프리픽스 (bitcoin 중 하나 geo, gopher, im, irc, ircs, magnet, mailto, mms, news, nntp, sip, sms, smsto없이 사용될 수있다 , ssh, tel, urn, webcal, wtai, xmpp). 다른 사용자 정의 이름의 접두사는 web+ 또는 ext+이어야합니다. 참조 : protocol_handlers 참조

"protocol_handlers": [ 
    { 
     "protocol" : "ext+linkpassword", 
     "name"  : "Password Link", 
     "uriTemplate": "html/processLink.html#login=%s" 
    } 
], 

그런 다음 당신이 핸들러를 트리거하기 위해 링크에서 ext+linkpassword://을 사용해야합니다 : 당신이이 방법을 등록 할 수 있습니다 접두사와

. WebExtensions의 현재 상태로는 linkpassword:// 같은 임의의 프로토콜 핸들러를 설정할 수는 없지만

, 그것에 대해 some discussions이 있기 때문에, 어떤 시점에서 변경 될 수 있습니다,하지만 기대 말할 때 어렵다 이. 실제 솔루션을 사용하기 전에 임시 해결 방법으로 Web을 ext+linkpassword://에 WebExtension JS 코드로 패치하면 페이지의 링크가 linkpassword:// 스키마로로드 된 경우에도 핸들러가 계속 트리거됩니다.