الوصف
تعمل واجهة برمجة التطبيقات chrome.debugger
كوسيلة نقل بديلة لبروتوكول تصحيح الأخطاء عن بُعد في Chrome. يمكنك استخدام chrome.debugger
للإرفاق بعلامة تبويب واحدة أو أكثر بغرض قياس تفاعل الشبكة، وتصحيح أخطاء JavaScript، وتغيير نموذج العناصر في المستند (DOM) وCSS وغير ذلك. استخدِم السمة Debuggee
tabId
لاستهداف علامات التبويب باستخدام sendCommand
وتوجيه الأحداث بحلول tabId
من onEvent
معاودة الاتصال.
الأذونات
debugger
ملاحظة أمان
لأسباب تتعلّق بالأمان، لا توفّر واجهة برمجة التطبيقات chrome.debugger
إمكانية الوصول إلى جميع نطاقات البروتوكولات الأساسية في أدوات مطوّري البرامج في Chrome. النطاقات المتاحة هي: Accessibility (تسهيل الاستخدام)
والتدقيق وCacheStorage وConsole
وCSS وDatabase وDebugger وDOM
DOMDebugger وDOMSnapshotWebAudioWebAuthn
البيان
يجب الإفصاح عن إذن ""debugger"
" في ملف بيان الإضافة لاستخدام واجهة برمجة التطبيقات هذه.
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
أمثلة
لتجربة واجهة برمجة التطبيقات هذه، عليك تثبيت مثال واجهة برمجة التطبيقات Debugger API من مستودع chrome-extension-pattern.
الأنواع
Debuggee
معرّف تصحيح الأخطاء يجب تحديد إما TabId أو additionalId أو targetId.
أماكن إقامة
-
extensionId
سلسلة اختيارية
رقم تعريف الإضافة التي تريد تصحيح أخطائها. لا يمكن إرفاق صفحة خلفية لإحدى الإضافات إلا عند استخدام مفتاح سطر أوامر
--silent-debugger-extension-api
. -
tabId
الرقم اختياري
رقم تعريف علامة التبويب التي تريد تصحيح أخطائها
-
targetId
سلسلة اختيارية
رقم التعريف المبهَم لهدف تصحيح الأخطاء.
DebuggerSession
معرّف جلسة برنامج تصحيح الأخطاء. يجب تحديد واحد من tabId أو additionalId أو targetId. بالإضافة إلى ذلك، يمكن تقديم sessionId اختياري. إذا تم تحديد sessionId للوسيطات المُرسَلة من onEvent
، يعني ذلك أنّ الحدث يأتي من جلسة بروتوكول فرعية ضمن جلسة تصحيح الأخطاء الجذر. في حال تحديد sessionId عند تمريرها إلى sendCommand
، ستستهدِف جلسة بروتوكول فرعية ضمن جلسة تصحيح الأخطاء الجذر.
أماكن إقامة
-
extensionId
سلسلة اختيارية
رقم تعريف الإضافة التي تريد تصحيح أخطائها. لا يمكن إرفاق صفحة خلفية لإحدى الإضافات إلا عند استخدام مفتاح سطر أوامر
--silent-debugger-extension-api
. -
sessionId
سلسلة اختيارية
رقم التعريف المبهَم لجلسة بروتوكول أدوات مطوّري البرامج في Chrome. لتحديد جلسة فرعية ضمن جلسة الجذر المحدّدة من خلال tabId أو additionalId أو targetId.
-
tabId
الرقم اختياري
رقم تعريف علامة التبويب التي تريد تصحيح أخطائها
-
targetId
سلسلة اختيارية
رقم التعريف المبهَم لهدف تصحيح الأخطاء.
DetachReason
سبب إنهاء الاتصال
التعداد
"target_closed"
"canceled_by_user"
TargetInfo
معلومات تصحيح الأخطاء المستهدفة
أماكن إقامة
-
مرفق
boolean
صحيح إذا سبق إرفاق برنامج تصحيح الأخطاء.
-
extensionId
سلسلة اختيارية
رقم تعريف الإضافة، يتم تحديده إذا كان النوع = 'background_page'.
-
faviconUrl
سلسلة اختيارية
عنوان URL للرمز المفضّل المستهدَف.
-
id
سلسلة
رقم تعريف الهدف.
-
tabId
الرقم اختياري
رقم تعريف علامة التبويب، يتم تحديده إذا كان النوع == 'page'
-
title
سلسلة
عنوان الصفحة المستهدف.
-
كتابة
نوع الاستهداف.
-
url
سلسلة
عنوان URL المستهدف.
TargetInfoType
نوع الاستهداف.
التعداد
"background_page"
الطُرق
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
)
إرفاق برنامج تصحيح الأخطاء بالهدف المحدّد.
المَعلمات
-
الاستهداف
تصحيح أخطاء الاستهداف الذي تريد إرفاقه
-
requiredVersion
سلسلة
إصدار بروتوكول تصحيح الأخطاء المطلوب ("0.1"). يمكن إرفاق أحدهما فقط بتصحيح الأخطاء الذي يتضمّن رقم إصدار رئيسي مطابق وإصدار ثانوي أكبر أو مساوٍ له. يمكن الحصول على قائمة إصدارات البروتوكول من هنا.
-
معاودة الاتصال
الدالة اختيارية
تبدو معلَمة
callback
على النحو التالي:() => void
المرتجعات
-
Promise<void>
Chrome 96 والإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار 3 من Manifest V3 والإصدارات الأحدث، وتحتاج الأنظمة الأساسية الأخرى إلى استخدام عمليات معاودة الاتصال.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
)
لفصل برنامج تصحيح الأخطاء عن الهدف المحدّد.
المَعلمات
-
الاستهداف
تصحيح أخطاء الاستهداف الذي تريد إزالته منه.
-
معاودة الاتصال
الدالة اختيارية
تبدو معلَمة
callback
على النحو التالي:() => void
المرتجعات
-
Promise<void>
Chrome 96 والإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار 3 من Manifest V3 والإصدارات الأحدث، وتحتاج الأنظمة الأساسية الأخرى إلى استخدام عمليات معاودة الاتصال.
getTargets()
chrome.debugger.getTargets(
callback?: function,
)
تعرض قائمة أهداف تصحيح الأخطاء المتاحة.
المَعلمات
-
معاودة الاتصال
الدالة اختيارية
تبدو معلَمة
callback
على النحو التالي:(result: TargetInfo[]) => void
-
نتيجة
مصفوفة من عناصر TargetInfo المقابلة لأهداف تصحيح الأخطاء المتاحة.
-
المرتجعات
-
Promise<TargetInfo[]>
Chrome 96 والإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار 3 من Manifest V3 والإصدارات الأحدث، وتحتاج الأنظمة الأساسية الأخرى إلى استخدام عمليات معاودة الاتصال.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
)
لإرسال الأمر المعيّن إلى هدف تصحيح الأخطاء
المَعلمات
-
الاستهداف
تصحيح أخطاء الاستهداف الذي تريد إرسال الأمر إليه
-
method
سلسلة
اسم الطريقة. استخدام إحدى الطرق التي يحددها بروتوكول تصحيح الأخطاء عن بُعد.
-
commandParams
الكائن اختياري
كائن JSON مع مَعلمات الطلب يجب أن يتوافق هذا العنصر مع مخطط مَعلمات تصحيح الأخطاء عن بُعد للطريقة المحدّدة.
-
معاودة الاتصال
الدالة اختيارية
تبدو معلَمة
callback
على النحو التالي:(result?: object) => void
-
نتيجة
الكائن اختياري
كائن JSON مع الاستجابة. تختلف بنية الاستجابة بناءً على اسم الطريقة ويتم تحديدها من خلال السمة "returns" (إرجاع) لوصف الأمر في بروتوكول تصحيح الأخطاء عن بُعد.
-
المرتجعات
-
Promise<object | undefined>
Chrome 96 والإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار 3 من Manifest V3 والإصدارات الأحدث، وتحتاج الأنظمة الأساسية الأخرى إلى استخدام عمليات معاودة الاتصال.
فعاليات
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
يتم تنشيطها عند إنهاء المتصفح جلسة تصحيح الأخطاء لعلامة التبويب. ويحدث ذلك عند إغلاق علامة التبويب أو عند استدعاء "أدوات مطوري البرامج في Chrome" لعلامة التبويب المرفقة.
المَعلمات
-
معاودة الاتصال
الوظيفة
تبدو معلَمة
callback
على النحو التالي:(source: Debuggee, reason: DetachReason) => void
-
المصدر
-
السبب
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
يتم تنشيطها عندما يحدث خطأ عند تصحيح الأخطاء في الأحداث المستهدفة.
المَعلمات
-
معاودة الاتصال
الوظيفة
تبدو معلَمة
callback
على النحو التالي:(source: DebuggerSession, method: string, params?: object) => void
-
المصدر
-
method
سلسلة
-
params
الكائن اختياري
-