تثبيت إضافات Chrome

إضافات Google Chrome هي عبارة عن تطبيقات برمجية صغيرة يمكنها تعديل وظائف Google Chrome وتحسينها.

يمكنك تنزيل إضافات Google Chrome من معرض الإضافات. كما يمكنك التعرف على كيفية إنشاء إضافاتك الخاصة من خلال الاطلاع على إضافات Google Chrome.

يمكن تثبيت إحدى الإضافات مسبقًا بإحدى الطرق التالية: عبر سياسة المجموعة أو عبر السجل أو عبر الملف master_preferences.

التثبيت المسبق عبر سياسة المجموعة

إن استخدام السياسة لنشر إحدى الإضافات أو تطبيق ويب في Chrome هو أسهل الطرق وأكثرها قابلية للتطور. وهذه هي الطريقة الموصي بها لنشر الإضافات، نظرًا لأنها لا تتطلب وجود ملف CRX على الجهاز. ويجب أن تكون متاحة بسهولة على عنوان URL المقدم.

لاستخدام هذه الطريقة، عين السياسة على "فرض تثبيت" الإضافة، كما هو موضح هنا.

التثبيت المسبق عبر الملف "master_preferences"

تتم إضافة الإضافات المثبتة مسبقًا إلى الملف "master_preferences" الموجود بجوار الملف "chrome.exe". وهذا يعني أن الملف CRX يمكن أن يتواجد في أي مكان، وأن وحدات البت لا يلزم أن تكون على جهاز المستخدم المستهدف ولا يلزم إدراجها في أي نص برمجي للتثبيت.

إذا لم تكن لديك معرفة بملف master_preferences أو كيفية عمله، يمكنك الاطلاع على تهيئة التفضيلات.

هناك بعض المتطلبات لاستخدام هذه الطريقة:

  • لا تعمل هذه الطريقة إلا إذا كان المستخدم لديه حق الدخول إلى معرض الإضافات العام أو عنوان URL آخر حيث يتم الاحتفاظ بملف CRX. ولذلك قد لا تعمل هذه الطريقة إذا كان المستخدم يعمل خلف جدار ناري عام أو خادم وكيل يعمل على تقييد الدخول إلى المعرض.

  • تعمل هذه الطريقة بشكل عام مع عمليات التثبيت الجديدة فقط. ويسبب استخدامها مع عمليات التثبيت الحالية إرهاقًا شديدًا كما يتطلب العديد من خطوات التنظيف.

لتثبيت إضافة بشكل مسبق عبر الملف "master_preferences":

  1. ابحث عن ملف CRX الذي تريد تثبيته. نزّله من المعرض، أو أنشئه وأدرجه بنفسك.

  2. افتح ملف CRX باستخدام أحد برامج الضغط بتنسيق zip، ثم ابحث عن الملف manifest.json (وهو عبارة عن ملف نصي). يحتوي هذا الملف على العديد من القيم التي ستحتاج إليها.

  3. ويمكنك إعداد الملف "master_preferences" باستخدام القيم من ملف "manifest.json".

وهذا نموذج للملف "master_preferences"، الذي يعمل على تثبيت إضافة "Google Reader" مسبقًا:


{
 "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 (Installing...)",
             "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 تم فك ضغطه، فستجد "key" في الملف "manifest.json".
  • ويمكن أن تكون القيمة name أي شيء، بالرغم من أن الحصول على علامة مؤقتة(أي (Installing...)) سيساعد المستخدم على إدراك سبب استغراق إحدى الإضافات مزيدًا من الوقت للتحميل.
  • يجب أن تكون القيمة "permissions" هي ذاتها الموجودة في الأذونات في ملف CRX المتوفر في الإضافة عند "update_url"، وبخلاف ذلك سيتم عرض الكثير من التحذيرات للمستخدم ولن يتم تحميلها. لذلك، لا يمكنك تحديد مصفوفة الأذونات وتفريغها، في حين تتطلب الإضافة الحقيقية العديد من الأذونات، والتي تخفي امتيازًا متزايدًا.
  • والقيمة "update_url" هي عنوان 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 (Installing...)",
              ...
إذا كانت الإضافة تحتوي على نصوص برمجية للمحتوى تفتقر إلى أذونات / حقوق وصول، ولم تحدد ذلك هنا، فلن يتم تحميل الإضافة.

يمكنك تحميل عدة إضافات مسبقًا. فوضع "إضافة" جديدة لا يقل سهولة عن إضافة مجموعة أخرى تحت القيمة "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" على أذونات واجهة برمجة التطبيقات في مفتاح البيان "الأذونات"
  • يحتوي الحقل "explicit_host" على أي أذونات استضافة في مفتاح البيان "الأذونات"
  • يجب تعيين "scriptable_host" على أي مضيفات في النصوص البرمجية لمحتوى الإضافة

أسهل طريقة لإنشاء الحقل granted_permissions هي تثبيت الإضافة محليًا ثم نسخ granted_permissions للإضافة من ملف التفضيلات في الملف الشخصي في Chrome.