2012-05-19 3 views
0

Chrome에서 프록시 사용자/pwd를 요청할 때마다 프록시 인증을 보내도록 확장 프로그램을 작성하지만 req http 기본 인증이있는 웹 페이지를 열 때마다 문제가 발생하며 '대기 중'에서 멈 춥니 다. XXXX ', XXXX는 내 확장 프로그램 이름입니다.Chrome에서 프록시 인증 보내기

같은 내 코드 :

var gPendingCallbacks = []; 
var bkg = chrome.extension.getBackgroundPage(); 

chrome.webRequest.onAuthRequired.addListener(handleAuthRequest, 
    {urls: ["<all_urls>"]}, ["asyncBlocking"]); 

function processPendingCallbacks() { 
    var callback = gPendingCallbacks.pop(); 
    callback({authCredentials: {username: 'user', 
           password: 'pass'}}); 
} 

function handleAuthRequest(details, callback) { 
    gPendingCallbacks.push(callback); 
    if (details.isProxy === true){ 
    processPendingCallbacks(); 
    } 
} 

어떻게이 문제를 해결할 수 있습니까?

+0

을 사용하면 문서 '에 authCredentials' 객체의 키로서 사용되는 경우에 포인트? Base64로 인코딩 된 값을 가진'Authorization' 또는'Proxy-Authorization' 헤더를 제공해야한다고 생각했습니다. – apsillers

+1

@apsillers http://code.google.com/chrome/extensions/webRequest.html#type-BlockingResponse – gengkev

+0

'details.isProxy'가 false이면 요청은 결코 콜백되지 않고 브라우저 프로세스가 중단됩니다. – gengkev

답변

1

변경 :

function handleAuthRequest(details, callback) { 
    gPendingCallbacks.push(callback); 
    if (details.isProxy === true){ 
     processPendingCallbacks(); 
    } 
} 

에 :

function handleAuthRequest(details, callback) { 
    gPendingCallbacks.push(callback); 
    processPendingCallbacks(); 
}