2016-11-15 2 views
1

나는 이론상 원격 서버의 일부 응답을 기반으로 특정 웹 사이트에 대한 액세스를 차단해야하는 firefox의 간단한 웹 확장을 시작했습니다. 사용자가 탐색하려고하면 원격 서버에서 확인을받을 때까지 새 페이지가로드되지 않습니다. 불행히도 원격 "확인"서버는 각 사용자에 대해 초 단위로 약간의 요청으로 제한되므로 사용자가 일부 페이지를 탐색 한 후 각 요청을 검사 할 수는 없습니다 (그리고 불필요합니다). "진짜"네비게이션을 듣는 모든 방법이 없으며 요청이 이루어지기 전에 전체 탭을 다른 곳으로 리디렉션 할 수 있습니까?WebExtension 리디렉션 및 웹 사이트 차단

내가 해봤 추가 기능 API : 컨텐츠 후 해고

  • 탭 이벤트가 이미 좋은하지 않은, 수신됩니다.

  • "http-on-modify-request"이벤트는 원격 검사 서버를 스팸 메일로 보내는 요청마다 실행됩니다.

WebExtensions :

  • browser.webNavigation.onBeforeNavigate 내가 필요한 것 같아,하지만 난 수 없습니다도 전송 확인 요청도 거기에서 리디렉션 내가 할 것입니다 확실하지 않다.
+0

무언가를받을 때까지 어떻게로드하지 않습니까 * * (시간 초과?)? (예 : "새 페이지는 * 원격 서버에서 확인 *받지 못하면 *로드되지 않습니다." – Makyen

+0

이 질문은 스택 오버플로 형식에 비해 너무 광범위합니다. 구현 방법이 너무 많습니다. 허용 된 URL/도메인을 추적하는 것입니다. 그런 다음 해당 도메인 내의 항목이 처음 요청되었을 때만 인증을 요청하면 그 응답을 기억하고 해당 도메인에 대한 이후의 요청에 사용합니다. 이것을 구현하는 것은 너무 광범위합니다. – Makyen

답변

1

은 "HTTP 온 - 수정 - 요청을"이벤트는 별도로 원격 검사 서버를 스팸 각 요청에 대해 발생합니다. 그 관찰자 통지가 당신에게 HTTP 채널을 제공

, 당신은 content policy constants 중 하나를 일치시켜 최고 수준의 문서로드를 필터링 할 수있는 externalContentPolicyType 속성이 채널 has a loadInfo 재산.

WebRequest.jsmbrowser.webRequest은 http 관찰자에 대한 추상화이며 유사한 기능을 제공합니다.