chrome.debugger

شرح

chrome.debugger API به عنوان یک انتقال جایگزین برای پروتکل اشکال‌زدایی از راه دور Chrome عمل می‌کند. از chrome.debugger برای اتصال به یک یا چند برگه برای تعامل شبکه ابزار، اشکال زدایی جاوا اسکریپت، جهش در DOM و CSS و غیره استفاده کنید. از tabId Debuggee برای هدف قرار دادن برگه‌ها با sendCommand و مسیریابی رویدادها توسط tabId از فراخوان‌های oneEvent استفاده کنید.

مجوزها

debugger

برای استفاده از این API باید مجوز "debugger" را در مانیفست برنامه افزودنی خود اعلام کنید.

{
  "name": "My extension",
  ...
  "permissions": [
    "debugger",
  ],
  ...
}

توجه داشته باشید

به دلایل امنیتی، API chrome.debugger دسترسی به همه دامنه‌های پروتکل ابزار توسعه کروم را فراهم نمی‌کند. دامنه‌های موجود عبارتند از : دسترسی ، ممیزی ، ذخیره‌سازی حافظه پنهان ، کنسول ، CSS ، پایگاه داده ، اشکال‌زدا ، DOM ، DOMDebugger ، DOMSnapshot ، شبیه‌سازی ، Fetch ، IO ، ورودی ، Inspector ، Log ، Network ، Overlay ، صفحه ، زمان ، عملکرد ، عملکرد , Target , Tracing , WebAudio و WebAuthn .

مثال ها

برای امتحان این API، نمونه Debugger API را از مخزن chrome-extension-samples نصب کنید.

انواع

Debuggee

شناسه اشکال زدایی باید tabId، extensionId یا targetId مشخص شود

خواص

  • شناسه extension

    رشته اختیاری

    شناسه افزونه‌ای که می‌خواهید اشکال‌زدایی کنید. پیوست کردن به صفحه پس‌زمینه افزونه تنها زمانی امکان‌پذیر است که از سوئیچ خط فرمان --silent-debugger-extension-api استفاده شود.

  • tabId

    شماره اختیاری

    شناسه برگه ای که می خواهید اشکال زدایی کنید.

  • شناسه هدف

    رشته اختیاری

    شناسه مات هدف رفع اشکال.

DebuggerSession

انتظار

شناسه جلسه اشکال زدا. یکی از tabId، extensionId یا targetId باید مشخص شود. علاوه بر این، یک sessionId اختیاری می تواند ارائه شود. اگر sessionId برای آرگومان های ارسال شده از onEvent مشخص شده باشد، به این معنی است که رویداد از یک جلسه پروتکل فرزند در جلسه اشکال زدایی ریشه می آید. اگر sessionId هنگام ارسال به sendCommand مشخص شود، یک جلسه پروتکل فرزند در جلسه اشکال زدایی ریشه را هدف قرار می دهد.

خواص

  • شناسه extension

    رشته اختیاری

    شناسه افزونه‌ای که می‌خواهید اشکال‌زدایی کنید. پیوست کردن به صفحه پس‌زمینه افزونه تنها زمانی امکان‌پذیر است که از سوئیچ خط فرمان --silent-debugger-extension-api استفاده شود.

  • شناسه جلسه

    رشته اختیاری

    شناسه مات جلسه پروتکل Chrome DevTools. یک جلسه فرزند را در جلسه ریشه شناسایی می کند که توسط tabId، extensionId یا targetId شناسایی شده است.

  • tabId

    شماره اختیاری

    شناسه برگه ای که می خواهید اشکال زدایی کنید.

  • شناسه هدف

    رشته اختیاری

    شناسه مات هدف رفع اشکال.

DetachReason

Chrome 44+

دلیل قطع اتصال

Enum

"هدف_بسته"

"cancelled_by_user"

TargetInfo

اشکال زدایی اطلاعات هدف

خواص

  • پیوست شده است

    بولی

    درست است اگر دیباگر قبلاً پیوست شده باشد.

  • شناسه extension

    رشته اختیاری

    شناسه برنامه افزودنی، اگر نوع = 'background_page' تعریف شود.

  • faviconUrl

    رشته اختیاری

    URL فاویکون را هدف قرار دهید.

  • شناسه

    رشته

    شناسه هدف

  • tabId

    شماره اختیاری

    شناسه برگه که در صورت نوع == 'page' تعریف شده است.

  • عنوان

    رشته

    عنوان صفحه مورد نظر

  • نوع هدف

  • آدرس اینترنتی

    رشته

    URL هدف.

TargetInfoType

Chrome 44+

نوع هدف

Enum

"صفحه"

"background_page"

"کارگر"

"دیگر"

مواد و روش ها

attach()

وعده
chrome.debugger.attach(
  target: Debuggee,
  requiredVersion: string,
  callback?: function,
)

دیباگر را به هدف داده شده متصل می کند.

مولفه های

  • اشکال زدایی هدفی که می خواهید به آن پیوست کنید.

  • نسخه مورد نیاز

    رشته

    نسخه پروتکل اشکال زدایی مورد نیاز ("0.1"). فقط می توان با نسخه اصلی منطبق و نسخه کوچک بزرگتر یا مساوی به اشکال زدایی متصل شد. لیست نسخه های پروتکل را می توان از اینجا دریافت کرد.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    ()=>void

برمی گرداند

  • قول<باطل>

    Chrome 96+

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

detach()

وعده
chrome.debugger.detach(
  target: Debuggee,
  callback?: function,
)

دیباگر را از هدف داده شده جدا می کند.

مولفه های

  • اشکال زدایی هدفی که می خواهید از آن جدا شوید.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    ()=>void

برمی گرداند

  • قول<باطل>

    Chrome 96+

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

getTargets()

وعده
chrome.debugger.getTargets(
  callback?: function,
)

لیستی از اهداف اشکال زدایی موجود را برمی گرداند.

مولفه های

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (result: TargetInfo[])=>void

    • نتیجه

      آرایه ای از اشیاء TargetInfo مربوط به اهداف اشکال زدایی موجود.

برمی گرداند

  • Promise< TargetInfo []>

    Chrome 96+

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

sendCommand()

وعده
chrome.debugger.sendCommand(
  target: DebuggerSession,
  method: string,
  commandParams?: object,
  callback?: function,
)

دستور داده شده را به هدف اشکال زدایی می فرستد.

مولفه های

  • اشکال زدایی هدفی که می خواهید دستور را به آن ارسال کنید.

  • روش

    رشته

    نام روش. باید یکی از روش هایی باشد که توسط پروتکل رفع اشکال از راه دور تعریف شده است.

  • commandparams

    شی اختیاری

    شی JSON با پارامترهای درخواست. این شی باید با طرح پارامترهای اشکال زدایی راه دور برای روش داده شده مطابقت داشته باشد.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (result?: object)=>void

    • نتیجه

      شی اختیاری

      شی JSON با پاسخ. ساختار پاسخ بسته به نام روش متفاوت است و با ویژگی 'returns' توضیحات فرمان در پروتکل اشکال زدایی راه دور تعریف می شود.

برمی گرداند

  • وعده<object|undefined>

    Chrome 96+

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

مناسبت ها

onDetach

chrome.debugger.onDetach.addListener(
  callback: function,
)

هنگامی که مرورگر جلسه اشکال زدایی را برای برگه خاتمه می دهد فعال می شود. این زمانی اتفاق می‌افتد که یا برگه بسته می‌شود یا Chrome DevTools برای برگه پیوست شده فراخوانی می‌شود.

مولفه های

onEvent

chrome.debugger.onEvent.addListener(
  callback: function,
)

هر زمان که خطایابی هدف رویداد ابزار دقیق را صادر می کند، شلیک می شود.

مولفه های

  • پاسخ به تماس

    تابع

    پارامتر callback به نظر می رسد:

    (source: DebuggerSession,method: string,params?: object)=>void

    • منبع
    • روش

      رشته

    • پارامترها

      شی اختیاری