安裝 Chrome 擴充功能

Google Chrome 擴充功能是一些小型的軟體程式,可用來修改及強化 Google Chrome 的功能。

您可以從擴充功能庫下載 Google Chrome 擴充功能。或者,如要瞭解如何自行建立擴充功能,請參閱 Google Chrome 擴充功能

您可以透過群組原則、登錄檔或 master_preferences 這三種方式預先安裝擴充功能。

透過群組原則進行預先安裝

使用政策部署擴充功能或 Chrome 網路應用程式是最簡單也最有彈性的方式。建議您使用這種方式發佈擴充功能,這樣就無需在裝置上使用 CRX 檔案,只需透過指定的網址存取即可。

如要使用這種方式,請按照這裡的說明將政策設為「強制安裝」擴充功能。

透過 master_preferences 進行預先安裝

系統會將預先安裝的擴充功能加入 chrome.exe 旁的 master_preferences 檔案中。換句話說,您可以將 CRX 檔案存放在任何地方,而不需要儲存在目標使用者的電腦,或封裝在任何安裝指令碼中。

如果您對於 master_preferences 檔案及其運作方式不熟悉,請參閱指定偏好設定

這種方法的限制:

  • 只有在使用者可以存取公開擴充功能庫或其他存放 CRX 檔案的網址時,才能使用這種方法。因此,如果使用者的電腦位在限制存取擴充功能庫的公司防火牆或 Proxy 伺服器後,這種方法將無法發揮功效。

  • 這種方法只有在全新安裝 Chrome 時才會發揮作用,如果目標電腦已安裝 Chrome,則要透過這個方法預先安裝擴充功能,需要另外執行許多清除步驟,這會讓整個作業變成有點麻煩。

如何透過 master_preferences 預先安裝擴充功能:

  1. 找到您想安裝的 CRX 檔案。從擴充功能庫下載檔案,或自行建立並予以封裝。

  2. 經由壓縮程式開啟 CRX,然後找到 manifest.json 檔案 (文字檔,其中包含很多您需要的值)。

  3. 運用 manifest.json 檔案的值設定 master_preferences。

以下是 master_preferences 範例,它會預先安裝 Google 閱讀器擴充功能:


{
"homepage" : "http://dev.chromium.org",
 "homepage_is_newtabpage" : true,
"extensions": {
        "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": {
          "location": 1,
          "manifest": {
             "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5cK3ybDkh173plsjDX
              oqUzvsjFRMtbc5+a8HR6dxYBETeXQ7GOR5/xYnsY2R4smo5ly4yUK69iF7rnPNH+
              X97K7e7JFbuH5W/ZRc8YaIG66oJ9JwKZagSOZasSJPWNz4f1GdaHD1Z4KRucvOYx
              saPVdwS2W3nbG6i3oQFaio+JQIDAQAB",
             "name": "Google Reader Notifier (安裝中...)",
             "permissions": [ "tabs", "http://www.google.com/" ],
             "update_url": "http://clients2.google.com/service/update2/crx",
             "version": "0.0"
          },
          "path": "apflmjolhbonpkbkooiamcnenbmbjcbf\\0.0",
          "state": 1
       }
    }
  }
}

這個 master_preferences 檔案的詳細說明如下:

  • 各個設定下方的第一個值是擴充功能的雜湊值 ("apflmjolhbonpkbkooiamcnenbmbjcbf"),封裝 CRX 檔案即可得到這個值。此外,這個值也是擴充功能在擴充功能庫中的識別碼。
  • "location" 必須為 1。
  • "manifest" 部分必須包含 "key"、"name"、"permissions"、"update_url" 以及 "version",這些項目都是取自擴充功能的資訊清單。
  • "key" 值來自封裝的擴充功能,和雜湊值一樣。您可以在未壓縮的 CRX 檔案的 manifest.json 中找到 "key"。
  • "name" 可以是任何名稱,系統已提供暫用標記 (例如,"(安裝中...)"),以便告知使用者擴充功能載入時間延長的原因。
  • "permissions" 必須與 "update_url" 所提供的擴充功能 CRX 檔案擁有相同的權限,否則使用者會看到很多警告訊息,而且系統不會載入擴充功能 CRX 檔案。因此,請勿指定以及清空權限陣列,而且由於實際的擴充功能需要很多的權限,這樣會隱藏需要提升的權限。
  • "update_url" 是儲存 CRX 的網址,您也可以在 manifest.json 檔案中找到這個資訊。
  • "version" 應保持為 "0.0"。
  • "path" 應保持為擴充功能的雜湊值加上 "\\0.0"。
  • "state" 應保持為 1。
  • 如果違反任何規則,系統可能不會載入擴充功能,或向使用者顯示警告訊息。

重要事項:如果擴充功能包含的內容指令碼需要權限,請一併將其列於 master_preferences 中,範例如下:


{
  "extensions": {
    "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": {
          "location": 1,
          "manifest": {
              "content_scripts": [ {
                "all_frames": true,
                "js": [ "script.js" ],
                "matches": [ "http://*/*", "https://*/*" ],
                "run_at": "document_start"
              } ],
             "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5cK3ybDkh173plsjDX
             oqUzvsjFRMtbc5+a8HR6dxYBETeXQ7GOR5/xYnsY2R4smo5ly4yUK69iF7rnPNH+X
             97K7e7JFbuH5W/ZRc8YaIG66oJ9JwKZagSOZasSJPWNz4f1GdaHD1Z4KRucvOYxsa
             PVdwS2W3nbG6i3oQFaio+JQIDAQAB",
             "name": "Google Reader Notifier (安裝中...)",
              ...
如果擴充功能包含的內容指令碼需要權限/存取權,而您未在此處指定,系統將不會載入擴充功能。

您可以預先載入多個擴充功能,而且新增額外的擴充功能就和在 "settings" 下方新增區塊一樣簡單:


{
  "extensions": {
    "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": {  <-- extension one
          "location": 1,
          "manifest": {
              ...
          }
        },
       "oaiwevnmzvoinziufeuibyfnzwevmiiw": {  <-- extension two
         "location": 1,
         "manifest": {
           ...
       },
       ...
     }
   }
}

如果擴充功能所要求的權限需要經過使用者核准,您也必須加入一段 granted_permissions 的指令碼:


{
  "extensions": {
    "settings": {
      "mihcahmgecmbnbcchbopgniflfhgnkff": {
        "location": 1,
        "manifest": {
          ...
        },
        "granted_permissions": {
          "api": [ "tabs" ],
          "explicit_host": [ "http://*.google.com/*", "https://*.google.com/" ],
          "scriptable_host": [ "http://example.com/" ]
        },
        ...
      },
      ...
    }
  }
}

如果您沒有加入 granted_permissions 這段指令碼,Chrome 會立即停用擴充功能。granted_permissions 欄位包含下列子欄位:

  • "api" 包含資訊清單的 "permissions" 金鑰中的 API 權限
  • "explicit_host" 包含資訊清單的 "permission" 金鑰中的任何代管權限
  • "scriptable_host" 必須設為擴充功能內容指令碼中的任何主機

如要產生 granted_permissions 欄位,最簡單的方法是在本機安裝擴充功能,然後從Chrome 設定檔的「Preferences」檔案中複製擴充功能的 granted_permissions。