0

我有一個Chrome擴展程序已經在我需要添加更多權限的商店中,因爲我想將其應用於更多網站。但是將它們放到權限數組中會禁用擴展,並且唯一的提示是需要新權限的是在漢堡菜單下,這完全沒用。Chrome擴展程序 - 要求新權限

這裏是原來的,裏面好像有一個隱含的「https://mail.google.com」的權限,由於它在content_scripts是對象:

{ 
 
    "manifest_version": 2, 
 
    "name": "My Extension", 
 
    "short_name": "Extension", 
 
    "version": "1.5.16", 
 
    "description": "Description here", 
 
    "homepage_url": "https://test.com/", 
 
    "icons": { 
 
    "16": "icon16.png", 
 
    "48": "icon48.png", 
 
    "128": "icon128.png" 
 
    }, 
 
    "content_scripts": [ 
 
    { 
 
     "matches": [ 
 
     "https://mail.google.com/*" 
 
     ], 
 
     "js": [ 
 
     "injector.js" 
 
     ], 
 
     "css": [ 
 
     "style.css" 
 
     ] 
 
    } 
 
    ], 
 
    "web_accessible_resources": [ 
 
    "app.js", 
 
    "libs.js" 
 
    ] 
 
}

在一個完美的世界裏我只是補充額外的「content_scripts」對象,但是由於隱含了對新網站域的許可,這會禁用擴展名。

將「optional_permissions」:[「https://hangouts.google.com」]仍禁用該插件,並不通知用戶。

如果我把任何代碼放到後臺腳本中,說任何以任何方式訪問chrome.tabs的東西...... BOOM!這意味着允許並且擴展功能被禁用。

我應該如何獲得新的權限而不禁用擴展?彈出窗口要求獲得許可將是一個完美的解決方案,但這不是我所提供的。

+0

其他可選的權限不會禁用它。並沒有暗示的許可,也沒有大多數chrome.tabs需要任何。添加背景頁面不是問題。 –

+0

但是在「content_scripts」中添加一個新的域名將禁用它。也許我在這裏埋葬了這個騙子,但是當我執行這個簡單明瞭的行爲時,它的確如我所說的那樣。使用「optional_permissions」是爲了解決這個問題。 – MrBen

+1

是的,新內容腳本會禁用。你不能真正停止,除非使用可選的權限和編程注入。 –

回答

0

拋開內容腳本的問題,在大多數情況下,可選的權限並不適合將修改列表中的權限從一個固定列表修補到另一個列表。

您將使現有用戶和新用戶都經歷對新用戶感到困惑的運行時權限對話框。

可選權限的真正目的是允許用戶在運行時未知的域中進行選擇。

最好是咬住子彈和風險禁用擴展。

如果您願意,您可以使用新權限發佈第二個擴展,使第一個未列出,併發布催促用戶安裝新擴展的更新。

有些用戶可能更喜歡這個,有些人可能會更加惱火 - 從一開始就是一種迷失式思維,你不會保留所有的用戶。雖然遷移路線將會在商店中失去累計評級。


添加內容腳本實際上是對主機權限的隱式授予。以及在運行時更改內容腳本配置的聲明性API never became supported/stable

所以,如果你絕對解決了可選的權限路線,你需要(低效率,有限制)做programmatic injection

+0

謝謝您確認我懷疑是這種情況。 – MrBen

相關問題