2012-01-20 52 views
2

我對協議處理程序爲Firefox工作,我打電話這樣的資源:如何隱藏URL中顯示

var ioservice = Cc["@mozilla.org/network/io-service;1"] 
        .getService(Ci.nsIIOService); 
var uri = ioservice.newURI('http://someurl'+someparams, null, null); 

的問題是,我希望用戶看到我的協議處理程序 - 像protocol:params而不是真實的URL。

回答

1

問題是,您的nsIProtocolHandler.newChannel()實現返回一個常規的HTTP通道 - 它與一個HTTP URL而不是你的通道相關聯。然而,這很容易修復,請將channel.originalURI設置爲您的網址(作爲newChannel()的參數)。

文檔:https://developer.mozilla.org/en/nsIChannel#Attributes

+1

謝謝弗拉基米爾 – Bogo