الأسئلة الشائعة

إذا لم تعثر على إجابة لسؤالك هنا، جرِّب الأسئلة الشائعة حول سوق Chrome الإلكتروني، علامة [google-chrome-extension] في Stack Overflow أو مجموعة إضافات Chromium أو المساعدة بشأن المتجر

بنود عامة

ما هي إضافات Google Chrome؟

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

كيف يمكنني إعداد Chrome لتطوير الإضافات؟

ما دمت تستخدم إصدارًا من Chrome يتوافق مع الإضافات، يعني ذلك أنّ لديك كل العناصر تحتاج إلى البدء في كتابة امتداد خاص بك. يمكنك البدء بتفعيل "وضع مطور البرامج".

انقر على رمز قائمة Chrome واختر الإضافات من قائمة الأدوات. تأكَّد من "وضع المطور" مربع الاختيار في أعلى الجانب الأيسر. يمكنك الآن إعادة تحميل الإضافية، وتحميل دليل الملفات غير المضغوط كما لو كانت إضافة مجمعة وغير ذلك. بالنسبة إلى الدليل التعليمي الكامل، راجع البدء.

ما هي التكنولوجيات المستخدمة لكتابة إضافات في Chrome؟

تتم كتابة الإضافات باستخدام تقنيات الويب العادية نفسها التي يستخدمها المطورون لإنشاء مواقع الويب. يمكن استخدام HTML كلغة ترميز للمحتوى، بينما يتم استخدام CSS للتصميم، وJavaScript البرمجة النصية. نظرًا لأن Chrome يدعم HTML5 وCSS3، يمكن للمطوّرين استخدام أحدث نسخة ويب مفتوحة تقنيات الرسم البياني مثل لوحات الرسم وصور CSS المتحركة في الإضافات. يمكن للإضافات أيضًا الوصول إلى العديد من واجهات برمجة تطبيقات JavaScript التي تساعد في تنفيذ وظائف مثل ترميز JSON والتفاعل مع المتصفح.

هل يتم جلب الإضافات من الويب في كل مرة يتم فيها تحميل المتصفّح؟

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

كيف يمكنني تحديد إصدار Chrome الذي تم نشره على أي قناة؟

لتحديد إصدار Chrome المتاح حاليًا على كل نظام من الأنظمة الأساسية المختلفة، انتقِل إلى omahaproxy.appspot.com. ستشاهد على هذا الموقع البيانات بتنسيق مشابه لما يلي:

cf,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,canary,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####

يمثّل كل سطر معلومات عن منصة مختلفة وقناة مختلفة. قائمة والأنظمة الأساسية هي cf (إطار Google Chrome) وlinux وmac وwin وcros (Google ChromeOS). تشير رسالة الأشكال البيانية القنوات المدرجة هي canary وdev وbeta وstable. الرقمان المكونان من أربعة أجزاء بعد الإصدارات الحالية والسابقة من Chrome التي تم نشرها على قناة النظام الأساسي هذه معًا. الجزء المتبقي من المعلومات عبارة عن بيانات تعريف حول وقت طرح الإصدارات لأول مرة، وكذلك أرقام الإصدارات المرتبطة بكل إصدار.

الإمكانات

هل يمكن للإضافات تقديم طلبات Ajax عبر النطاقات؟

نعم. يمكن للإضافات تقديم طلبات عبر النطاقات. يمكنك الاطّلاع على هذه الصفحة للحصول على مزيد من المعلومات.

هل يمكن للإضافات استخدام خدمات ويب تابعة لجهات خارجية؟

نعم. يمكن للإضافات إرسال طلبات Ajax عبر النطاقات، لذلك يمكنها طلب واجهات برمجة التطبيقات عن بُعد. مباشرةً. من السهل بشكل خاص استخدام واجهات برمجة التطبيقات التي توفر البيانات بتنسيق JSON.

هل يمكن للإضافات ترميز/فك ترميز بيانات JSON؟

نعم، لأنّ V8 (محرك JavaScript في Chrome) يتوافق مع JSON.stringify وJSON.parse في الأصل، يمكنك هذه الدوال في الإضافات كما هو موضح هنا بدون تضمين أي مكتبات JSON في الرمز البرمجي

هل يمكن للإضافات تخزين البيانات محليًا؟

نعم، يمكن للإضافات استخدام localStorage لتخزين بيانات السلسلة بشكل دائم. استخدام متصفّح Chrome المضمَّن JSON، يمكنك تخزين هياكل البيانات المعقدة في localStorage. للإضافات التي تحتاج إلى: تنفيذ طلبات بحث SQL على بياناتها المخزنة، وينفذ Chrome قواعد بيانات SQL من جهة العميل، والتي استخدام المشروع أيضًا.

هل يمكن للإضافات استخدام بروتوكول OAuth؟

نعم، هناك إضافات تستخدم OAuth للوصول إلى واجهات برمجة التطبيقات للبيانات عن بُعد. يجد معظم المطوّرين ذلك استخدام مكتبة OAuth في JavaScript لتبسيط عملية توقيع OAuth الطلبات.

هل يمكن للإضافات إنشاء واجهة مستخدم خارج صفحة الويب المعروضة؟

نعم، قد تضيف إضافتك أزرارًا إلى واجهة المستخدم في متصفّح Chrome. عرض المتصفح الإجراءات وإجراءات الصفحة للحصول على المزيد من المعلومات.

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

هل يمكن للإضافات الاستماع إلى النقرات على علامات التبويب وأزرار التنقّل في Chrome؟

لا، تقتصر الإضافات على الاستماع إلى الأحداث الموضَّحة في مستندات واجهة برمجة التطبيقات.

هل يمكن لإضافتَين التواصل مع بعضهما؟

نعم، يمكن للإضافات تمرير الرسائل إلى إضافات أخرى. اطّلِع على مستندات تمرير الرسائل. لمزيد من المعلومات.

هل يمكن للإضافات استخدام "إحصاءات Google"؟

نعم، نظرًا لأنه يتم إنشاء الإضافات مثلما يتم إنشاء المواقع الإلكترونية، يمكنها استخدام إحصاءات Google لتتبُّع الاستخدام. ومع ذلك، يجب تعديل رمز التتبّع لسحب إصدار HTTPS من "إحصاءات Google". المكتبة. اطّلِع على هذا البرنامج التعليمي للحصول على مزيد من المعلومات حول كيفية إجراء ذلك.

هل يمكن للإضافات تعديل عناوين URL التي تبدأ بـ chrome:// ؟

لا، تم تصميم واجهات برمجة تطبيقات الإضافات لتقليل مشاكل التوافق مع الأنظمة القديمة التي قد تنشأ. عند فرض إصدارات جديدة من المتصفّح يعني السماح بنصوص المحتوى البرمجية على chrome:// عناوين URL لكي يبدأ المطوّرون في الاعتماد على نماذج DOM وCSS وJavaScript من هذه الصفحات للبقاء على حالها. في أفضل الحالات، لا يمكن تحديث هذه الصفحات بالسرعة التي يتم تعديلها الآن. وفي أسوأ الحالات، قد يعني ذلك أن تحديث إحدى هذه الصفحات يمكن أن يتسبب في تمديد مما يؤدي إلى توقف أجزاء رئيسية من المتصفح عن العمل لدى مستخدمي تلك الإضافة.

ويُسمح باستبدال المحتوى المستضاف على عناوين URL هذه تمامًا هو أنه يجبر مطوّر الإضافة على تنفيذ جميع الوظائف التي يريدها بدون الاعتماد على التنفيذ الداخلي للمتصفح ليظل كما هو.

هل يمكن للإضافات فتح النوافذ المنبثقة لإجراءات المتصفّح/الصفحة بدون تفاعل المستخدم؟

لا، لا يمكن فتح النوافذ المنبثقة إلا إذا نقر المستخدم على الصفحة المقابلة أو إجراء المتصفّح المقابل. إنّ لا يمكن للإضافة فتح النافذة المنبثقة آليًا.

هل يمكن للإضافات إبقاء النوافذ المنبثقة مفتوحة بعد أن ينقر المستخدم بعيدًا عنها؟

لا، يتم إغلاق النوافذ المنبثقة تلقائيًا عندما يركز المستخدم على جزء من المتصفح خارج . وليس هناك أي طريقة لإبقاء النافذة المنبثقة مفتوحة بعد أن ينقر المستخدم بعيدًا.

هل يمكن إشعار الإضافات عند تثبيتها أو إلغاء تثبيتها؟

يمكنك الاستماع إلى الحدث runtime.onInstalled ليتم إعلامك عند تثبيت الإضافة. تثبيته أو تحديثه أو عند تحديث Chrome نفسه. لا يتوفّر حدث مطابق لوقت تم إلغاء تثبيت الإضافة.

تطوير

كيف يمكنني إنشاء واجهة مستخدم للإضافة؟

تستخدم الإضافات HTML وCSS لتحديد واجهات المستخدم الخاصة بها، لذا يمكنك استخدام عناصر التحكّم العادية في النماذج. لإنشاء واجهة المستخدم، أو تصميم الواجهة باستخدام CSS، كما تفعل مع صفحة ويب. بالإضافة إلى ذلك، إضافة بعض عناصر واجهة المستخدم المحدودة إلى Chrome نفسه

كم من البيانات يمكنني تخزينها في LocalStorage؟

يمكن للإضافات تخزين ما يصل إلى 5 ميغابايت من البيانات في التخزين المحلي.

كيف يمكنني إنشاء قائمة خيارات لتطبيقي؟

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

ما هي أدوات تصحيح الأخطاء المتوفرة لمطوّري الإضافات؟

يمكن استخدام أدوات المطوّرين المضمَّنة في Chrome لتصحيح أخطاء الإضافات وصفحات الويب. عرض هذا المحتوى برنامج تعليمي حول تصحيح أخطاء الإضافات للحصول على المزيد من المعلومات.

لماذا لا تعمل مطابقات أحرف البدل مع نطاقات المستوى الأعلى (TLD)؟

لا يمكنك استخدام أنماط مطابقة أحرف البدل مثل http://google.*/* لمطابقة نطاقات المستوى الأعلى (مثل http://google.es وhttp://google.fr) نظرًا لتعقيد تقييد مثل هذه مطابقة بالنطاقات المطلوبة فقط.

على سبيل المثال، ستتم مطابقة نطاقات Google، ولكن بالنسبة إلى http://google.*/*. http://google.someotherdomain.com بالإضافة إلى ذلك، لا يملك العديد من المواقع الإلكترونية جميع نطاقات المستوى الأعلى الخاصة بها مجالك. على سبيل المثال، لنفترض أنّك تريد استخدام http://example.*/* لمطابقة http://example.com. وhttp://example.es، ولكن http://example.net موقع معادٍ. إذا كانت الإضافة تحتوي على خطأ، يمكن أن يهاجم الموقع العدائي إضافتك للدخول إلى امتيازات متزايدة.

يجب عليك تعداد نطاقات المستوى الأعلى (TLD) التي تريد تطبيق الإضافة عليها بشكل صريح.

لماذا لا تُنشِّط واجهة برمجة تطبيقات الإدارة الأحداث عند تثبيت/إلغاء تثبيت الإضافة؟

تهدف واجهة برمجة التطبيقات للإدارة إلى المساعدة في إنشاء إضافات استبدال صفحات علامات التبويب الجديدة. لا التي تهدف إلى تنشيط أحداث التثبيت أو إلغاء التثبيت للإضافة الحالية.

كيف يمكن لإحدى الإضافات تحديد ما إذا كانت يتم عرضها للمرة الأولى؟

يمكنك الاستماع إلى حدث runtime.onInstalled. يمكنك الاطّلاع على قسم الأسئلة الشائعة هذا.

الميزات والأخطاء

أعتقد أنني وجدت خللاً! كيف يمكنني التأكّد من أنّه تم حلّ المشكلة؟

أثناء تطوير إضافة، قد تجد سلوكًا لا يتطابق مع الإضافات عن الويب وقد تكون نتيجة لخطأ في Chrome. أفضل شيء يجب القيام به هو التأكد من تقديم تقرير المشكلة، ويمتلك فريق Chromium معلومات كافية لإعادة إنتاج السلوك.

الخطوات التي يجب اتّباعها للتأكّد من:

  1. التوصل إلى أدنى إضافة اختبار توضح المشكلة التي ترغب في الإبلاغ عنها. هذا النمط إضافة أقل قدر ممكن من التعليمات البرمجية لتوضيح الخطأ، وعادةً ما يكون هذا الإجراء 100 سطر من الرمز أو أقل. في كثير من الأحيان، يجد المطوّرون أنّه لا يمكنهم إعادة إنتاج الخطأ. بهذه الطريقة، وهي مؤشر جيد على أن الخطأ وارد في التعليمات البرمجية الخاصة بهم.
  2. ابحث في متتبع المشكلات على http://crbug.com لمعرفة ما إذا كان أحد الأشخاص قد أبلغ عن مشكلة مشابهة المشكلة. يتم تقديم معظم المشكلات المتعلقة بالإضافات ضمن component=Platform>Extensions، لذلك للبحث عن خطأ في الإضافة يتعلق بالدالة chrome.tabs.executeScript (على سبيل المثال)، البحث عن "component=Platform>Extensions Type=Bug chrome.tabs.executeScript"، والذي سيعطيك قائمة النتائج هذه.
  3. إذا عثرت على خطأ يصف مشكلتك، انقر على رمز النجمة ليتم إشعارك عند حدوث الخطأ. تحديثًا. لا تستجيب للخطأ بأن تقول "أنا أيضًا" أو اسأل "متى سيكون تم إصلاحه؟"؛ إلى إرسال مئات الرسائل الإلكترونية. أضف تعليقًا فقط إذا كان لديك تعليق (مثل حالة اختبار أفضل أو حل مقترح) والذي من المرجح أن يكون مفيدًا.
  4. إذا لم تعثر على خطأ مناسب لتمييزه بنجمة، يمكنك الإبلاغ عن مشكلة جديدة على الرابط http://crbug.com/new. كن واضحًا قدر الإمكان عند ملء هذا النموذج: اختر عنوانًا وصفيًا، واشرح لإعادة إنتاج الخطأ ووصف السلوك المتوقع والفعلي. إرفاق الاختبار المثال إلى التقرير وإضافة لقطات شاشة إذا كان ذلك مناسبًا. كلما كان تقريرك أسهل في الآخرين لإعادة إنتاج المشكلة، تزداد فرصة إصلاح الخطأ على الفور.
  5. انتظِر حتى يتم تحديث الخطأ. يتم فرز معظم الأخطاء الجديدة في غضون أسبوع، رغم أنه من الممكن أن يستغرق الأمر أحيانًا وقتًا أطول للتحديث. لا تردّ على الخطأ للاستفسار عن موعد حدوث المشكلة. إصلاحها إذا لم يتم تعديل الخطأ بعد أسبوعين، يُرجى نشر رسالة على مجموعة مناقشة مع رابط للرجوع إلى الخطأ.
  6. إذا كنت قد أبلغت في الأصل عن الخطأ في مجموعة المناقشة وتم توجيهك إلى إدخال الأسئلة الشائعة هذا، يمكنك الرد على سلسلة المحادثات الأصلية وإضافة رابط يؤدي إلى الخطأ الذي ميّزته بنجمة أو أبلغت عنه. سيجعل ذلك على الآخرين الذين يواجهون نفس المشكلة العثور على الخطأ الصحيح.

لدي طلب ميزة. فكيف يمكنني الإبلاغ عنها؟

إذا حددت ميزة ما (خاصةً إذا كانت ذات صلة بواجهة برمجة تطبيقات تجريبية) يمكن إضافتها إلى تحسين تجربة تطوير الإضافة، والحرص على تقديم طلب مناسب في المشكلة جديد.

الخطوات التي يجب اتّباعها للتأكّد من:

  1. ابحث في متتبع المشكلات على http://crbug.com لمعرفة ما إذا كان أحد الأشخاص قد طلب ميزة مماثلة. يتم تقديم معظم الطلبات المتعلّقة بالإضافات بموجب component=Platform>Extensions، حتى يتم البحث عن طلب ميزة الإضافة الذي يتعلق اختصارات لوحة المفاتيح (على سبيل المثال)، فابحث عن "component=Platform>Extensions Type=Feature shortcuts"، التي ستعطيك قائمة هذه النتائج.
  2. إذا عثرت على تذكرة تطابق طلبك، انقر على رمز النجمة ليتم إشعارك عند حدوث الخطأ. تحديثًا. لا تستجيب للخطأ بأن تقول "أنا أيضًا" أو اسأل "متى سيكون implemented?"; إلى إرسال مئات الرسائل الإلكترونية.
  3. في حال عدم العثور على تذكرة مناسبة للتمييز بنجمة، يمكنك تقديم طلب جديد على http://crbug.com/new. كن بأكبر قدر ممكن من التفصيل عند ملء هذا النموذج: اختر عنوانًا وصفيًا واشرح بالضبط ما الميزة التي تريدها وكيف تخطط لاستخدامها.
  4. يُرجى الانتظار إلى أن يتم تعديل التذكرة. يتم فرز معظم الطلبات الجديدة خلال أسبوع، على الرغم من أنه يمكن أن يستغرق الأمر أحيانًا وقتًا أطول للتحديث. عدم الردّ على التذكرة للاستفسار عن موعد إطلاق الميزة التي تمت إضافتها إذا لم يتم تعديل تذكرتك بعد أسبوعين، يُرجى نشر رسالة في مجموعة مناقشة مع رابط لطلبك.
  5. إذا أبلغت في البداية عن طلبك بشأن مجموعة المناقشة وتم توجيهك إلى هذا السؤال الشائع ، يمكنك الرد على سلسلة المحادثات الأصلية وإضافة رابط للتذكرة التي ميّزتها بنجمة أو فتحتها. سيؤدي هذا إلى تيسير العثور على التذكرة الصحيحة على الأشخاص الذين لديهم الطلب نفسه.