2011-08-01 36 views

回答

3

你不需要tabs權限進行瀏覽器顯示的操作圖標,但你需要它爲你chrome.tabs.onUpdated.addListener()在後臺頁面。

tabs權限不應觸發「您的瀏覽歷史記錄」警告,這是圖庫中的一個錯誤。根據specs它應該說「您的標籤和瀏覽活動」。我建議提交a bug report

+0

任何其他方式來檢測用戶是否瀏覽Google+?另外,塞爾格,我覺得你已經回答了我的一些問題。謝謝。 – Salem

+0

@Salem由於您已經將內容腳本僅注入到Google +,因此您可以在內容腳本開始處向後臺頁面發送請求,告訴其顯示彈出式圖標。 – serg

+0

謝謝,我會給你一個鏡頭。 – Salem

-1

編輯:這實際上不是一個很好的做法(更多信息在評論以下)。我不會刪除這個答案,只是爲了讓別人知道不該做什麼。


我有同樣的問題,只需添加"http://*/*""https://*/*"的權限解決它。

像這樣:

"permissions": [ 
    "tabs", 
    "http://*/*", 
    "https://*/*" 
    ] 

我不知道爲什麼,它並沒有太大的意義(不是嗎?),但現在的「閱讀和修改您的瀏覽歷史記錄」權限的消息是走了。

希望這會有所幫助。

+1

是的,現在您可以「閱讀並修改您訪問的所有網站上的所有數據。」而不是「閱讀並修改您的瀏覽記錄」。這不是一個改進,是嗎? –

+0

@RobW哎呀,我沒有意識到這一點。你是對的,這可能不是要走的路。但對於我的理解,這是一個錯誤吧? – anpa

+2

權限警告不是一個錯誤。 ['tabs'](https://developer.chrome.com/extensions/tabs)文檔對'tabs' API的用途非常清楚:如果你想閱讀'url',你只需要權限'或'faviconUrl'屬性的選項卡對象。通過訪問這些屬性,您可以構建用戶的歷史記錄,因此在這種意義上,權限警告是正確的。 –

3

有趣的是,現在需要"tabs"權限。

引用文檔本身(重點煤礦):

大多數chrome.tabs API的可以不聲明的任何許可使用。但是,需要"tabs"權限以便填充Tab的url,titlefavIconUrl屬性

因此,您可以輕鬆地操作選項卡(例如創建它們)而不需要權限。

更重要的是,當"activeTab"許可激活(擴展名被調用當前選項卡),受限制的領域來如果查詢他們居住。這似乎需要"tabs"許可


一個共同的任務是找到一個給定的地址的標籤。以前這是不可能的,特別是在query()是一件事情之前 - 一個人只會得到所有的標籤並手工過濾它們。

但是,即使您沒有"tabs"權限,也可以按URL模式進行查詢。 您確實需要此URL模式的主機權限。

因此,假設你想知道www.example.com在某些選項卡中打開:概念

chrome.tabs.query({url: "*://www.example.com/*"}, function(tabs) { 
    // Look, ma, no "tabs"! 
}); 

證明:GitHub

要點:本最後絕招無法在Firefox WebExtensions工作。他們無條件地拋出異常,如果通過URL查詢標籤沒有"tabs"權限。是的,即使是Chrome瀏覽器,這與文檔也有直接矛盾,所以在某些時候它可能會停止工作。


現在假設你還是想知道確切的網址(上面的方法,你只能猜測)和一些標籤標題/圖標。你還需要"tabs"權限嗎?

取決於。如果您只需要它爲幾個網站,聲明他們的主機權限並注入一個內容腳本(在查詢如上)收穫此信息。

這將導致不同的警告:

讀取和修改{網站列表}

VS一個爲"tabs"您的數據:

閱讀您的瀏覽歷史

如果您只是在這些網站的背景下進行擴展,這是一個合理的妥協。相反,如果您正在製作一個通用擴展程序,需要爲您不知道的網站提供此信息,那麼"tabs"是非常有意義的。

+0

如果沒有「標籤」權限,使用URL模式查詢選項卡不起作用。 _匹配一個或多個URL模式的標籤。請注意,片段標識符不匹配。請注意,如果擴展沒有「選項卡」權限**,則此屬性將被忽略**。使用activeTab權限它可以工作,但只有當查詢由'pageAction'啓動時,例如你不能從後臺腳本執行它。 –

+0

@KohányiRóbert我知道這是工作,因爲我部署了擴展工作方式(沒有'activeTab')。我認爲還有一個額外的要求,即擁有涵蓋您查詢模式的主機權限。 Firefox確實遵循了文檔 - 所以它是不可移植的代碼。 – Xan

+0

@KohányiRóbert[權限](https://github.com/kav2k/chandlery/blob/master/src/manifest.json#L37-L41)和[使用'query這樣的代碼](https:// github的.com/kav2k /雜貨/斑點/主/ SRC/JS/notification.js#L100-L107)。 FWIW,代碼從通知點擊開始執行爲「用戶操作」,因此它確實符合「activeTab」激活標準。但我沒有這個許可。 – Xan

相關問題