2017-12-06 1 views
2

나는 단지 MDN example chrome extension을 사용하려고합니다. 여기의 manifest.json은Chrome 확장 프로그램 차단 webRequest가 전혀 작동하지 않는 것 같습니다.

{ 
    "description": "Altering HTTP responses", 
    "manifest_version": 2, 
    "name": "http-response-filter", 
    "version": "1.0", 
    "homepage_url": 
    "https://github.com/mdn/webextensions-examples/tree/master/http-response", 
    "icons": { 
    "48": "SA-48x48.png" 
    }, 

    "background": { 
    "scripts": ["background.js"] 
    } 
} 

이며, 여기에 background.js이

function listener(details) { 
    console.log("******listen"); 
    let filter = browser.webRequest.filterResponseData(details.requestId); 
    let decoder = new TextDecoder("utf-8"); 
    let encoder = new TextEncoder(); 

    filter.ondata = event => { 
    let str = decoder.decode(event.data, { stream: true }); 
    // Just change any instance of Example in the HTTP response 
    // to WebExtension Example. 
    str = str.replace(/Example/g, "WebExtension Example"); 
    filter.write(encoder.encode(str)); 
    filter.disconnect(); 
    }; 

    return {}; 
} 
console.log("******"); 
browser.webRequest.onBeforeRequest.addListener(
    listener, 
    { urls: ["https://example.com/*"], types: ["main_frame"] }, 
    ["blocking"] 
); 

그래서 내가

  • 에 내가 example.com
  • 을로드 할 때 부부가 밖으로 console.logs 넣어 그것을 기대입니다
  • MDN 사람들이 말한 "예제"에서 "WebExtension 예제"로 수정하십시오.

그러나 전혀 작동하지 않습니다. (Chrome을 사용하고 있으며 확장 프로그램으로 확장 프로그램에 추가했습니다. 이전에 다른 크롬 확장 프로그램을 사용 했었지만 배경 스크립트를 처음 사용했습니다.).

배경 스크립트가 실행되는 것을 차단할 수 있습니까? 내가 올바른 방식으로 구성하지 않았습니까? 올바른 방향으로 나를 가르쳐 주셔서 감사합니다.

+0

크롬이 작동하지 않도록 응답 본문을 수정 지원하지 않습니다. – wOxxOm

+0

사실이라고 생각하지 않습니다. MDN에서 직접 가져 왔으며이 API를 사용하는 다른 확장 (예 : SmileAlways)을 보았습니다. 여기에 설치가 있다고 생각 하나? – swyx

+0

사실 내 질문에 대한 답변이 아니기 때문에 내 게시물을 삭제했습니다. 의견은 제안에 더 적합합니다. \t console.log는 스크립트가로드 된 경우 콘솔에 무엇인가를 인쇄해야하므로로드되지 않도록 할 수 있습니다. 그런데 - 디버깅 할 때 확장 기능의 배경 페이지를 검사하고 있습니까? – maxpaj

답변

2

Chrome 확장 프로그램은 webRequest API를 사용하기위한 권한을 요청해야 확장 프로그램 사용자가 확장 프로그램이 수행 할 수있는 작업에 대한 알림을 받게됩니다. 당신의 manifest.json이 추가

시도 :

"permissions": [ 
    "webRequest", 
    "webRequestBlocking" 
] 
+1

왜 당신이 downvoted있어 모르겠어요 .. 귀하의 배경 페이지 검사 힌트가 올바른 일을하고 정확하게 그게 내가 다른 모든 것들을 디버깅하는 데 필요한 정확하게했다 markedyou. 고마워요. – swyx

관련 문제