chrome.debugger

রিফ্রেশ করার তারিখ: ২৫-০৯-২০২৬ রোবট: noindex

বিবরণ

chrome.debugger API, Chrome-এর রিমোট ডিবাগিং প্রোটোকলের বিকল্প ট্রান্সপোর্ট হিসেবে কাজ করে। নেটওয়ার্ক ইন্টার‍্যাকশন ইনস্ট্রুমেন্ট করতে, JavaScript ডিবাগ করতে, DOM ও CSS পরিবর্তন করতে এবং আরও অনেক কিছু করতে এক বা একাধিক ট্যাবে অ্যাটাচ করতে chrome.debugger ব্যবহার করুন। sendCommand সহ ট্যাব টার্গেট করতে এবং onEvent কলব্যাক থেকে tabId অনুযায়ী ইভেন্ট রাউট করতে Debuggee প্রপার্টি tabId ব্যবহার করুন।

অনুমতি

debugger

নিরাপত্তা সংক্রান্ত নোট

নিরাপত্তার কারণে, chrome.debugger API সব Chrome DevTools প্রোটোকল ডোমেনে অ্যাক্সেস প্রদান করে না। উপলভ্য ডোমেনগুলি হল: অ্যাক্সেসিবিলিটি, অডিট, CacheStorage, Console, CSS, Database, Debugger, DOM, DOMDebugger, DOMSnapshot, Emulation, Fetch, IO, Input, Inspector, Log, Network, Overlay, Page, Performance, Runtime, Storage, Target, Tracing, WebAudio এবং WebAuthn.

ম্যানিফেস্ট

এই API ব্যবহার করতে হলে, আপনার এক্সটেনশনের ম্যানিফেস্টে "debugger" অনুমতি ঘোষণা করতে হবে।

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

উদাহরণ

এই API ব্যবহার করে দেখতে, chrome-extension-samples রেপোজিটরি থেকে debugger API উদাহরণ ইনস্টল করুন।

ধরন

Debuggee

ডিবাগ করা হচ্ছে এমন প্রসেসের শনাক্তকারী। tabId, extensionId বা targetId-এর মধ্যে কোনও একটি অবশ্যই উল্লেখ করতে হবে

প্রপার্টি

  • extensionId

    স্ট্রিং ঐচ্ছিক

    আপনি যে এক্সটেনশন ডিবাগ করতে চান তার আইডি। --silent-debugger-extension-api কমান্ড-লাইন সুইচ ব্যবহার করা হলেই শুধুমাত্র এক্সটেনশনের ব্যাকগ্রাউন্ড পৃষ্ঠায় অ্যাটাচ করা যায়।

  • tabId

    নম্বর ঐচ্ছিক

    আপনি যে ট্যাবটি ডিবাগ করতে চান তার আইডি।

  • targetId

    স্ট্রিং ঐচ্ছিক

    ডিবাগ টার্গেটের অস্বচ্ছ আইডি।

DebuggerSession

Chrome 125+

ডিবাগার সেশন শনাক্তকারী। tabId, extensionId বা targetId-এর মধ্যে একটি অবশ্যই উল্লেখ করতে হবে। এছাড়াও, ঐচ্ছিক sessionId প্রদান করা যেতে পারে। onEvent থেকে পাঠানো আর্গুমেন্টের জন্য sessionId নির্দিষ্ট করা থাকলে, এর অর্থ হল ইভেন্টটি রুট ডিবাগি সেশনের মধ্যে চাইল্ড প্রোটোকল সেশন থেকে আসছে। sendCommand-এ sessionId নির্দিষ্ট করা থাকলে, এটি রুট ডিবাগি সেশনের মধ্যে চাইল্ড প্রোটোকল সেশনকে টার্গেট করে।

প্রপার্টি

  • extensionId

    স্ট্রিং ঐচ্ছিক

    আপনি যে এক্সটেনশন ডিবাগ করতে চান তার আইডি। --silent-debugger-extension-api কমান্ড-লাইন সুইচ ব্যবহার করা হলেই শুধুমাত্র এক্সটেনশনের ব্যাকগ্রাউন্ড পৃষ্ঠায় অ্যাটাচ করা যায়।

  • sessionId

    স্ট্রিং ঐচ্ছিক

    Chrome DevTools Protocol সেশনের অস্বচ্ছ আইডি। tabId, extensionId বা targetId দ্বারা শনাক্ত করা রুট সেশনের মধ্যে একটি চাইল্ড সেশন শনাক্ত করে।

  • tabId

    নম্বর ঐচ্ছিক

    আপনি যে ট্যাবটি ডিবাগ করতে চান তার আইডি।

  • targetId

    স্ট্রিং ঐচ্ছিক

    ডিবাগ টার্গেটের অস্বচ্ছ আইডি।

DetachReason

Chrome 44+

কানেকশন বন্ধ করার কারণ।

Enum

"target_closed"

"canceled_by_user"

TargetInfo

ডিবাগ টার্গেট সংক্রান্ত তথ্য

প্রপার্টি

  • অ্যাটাচ করা আছে

    বুলিয়ান

    ডিবাগার আগে থেকেই অ্যাটাচ করা থাকলে, 'সত্য'।

  • extensionId

    স্ট্রিং ঐচ্ছিক

    টাইপ = 'background_page' হলে, এক্সটেনশন আইডি নির্দিষ্ট করা হয়।

  • faviconUrl

    স্ট্রিং ঐচ্ছিক

    টার্গেট ফেভিকন URL.

  • id

    স্ট্রিং

    টার্গেট আইডি।

  • tabId

    নম্বর ঐচ্ছিক

    টাইপ == 'page' হলে, ট্যাব আইডি নির্দিষ্ট করা হয়।

  • শীর্ষক

    স্ট্রিং

    টার্গেট পৃষ্ঠার শীর্ষক।

  • ধরন

    টার্গেটের ধরন।

  • URL

    স্ট্রিং

    টার্গেট URL.

TargetInfoType

Chrome 44+

টার্গেটের ধরন।

Enum

"page"

"background_page"

"কর্মী"

"অন্যান্য"

পদ্ধতি

attach()

প্রতিশ্রুতি
chrome.debugger.attach(
  target: Debuggee,
  requiredVersion: string,
  callback?: function,
)
: Promise<void>

প্রদত্ত টার্গেটে ডিবাগার অ্যাটাচ করে।

প্যারামিটারগুলি

  • target

    আপনি যে টার্গেটে অ্যাটাচ করতে চান সেটি ডিবাগ করা।

  • requiredVersion

    স্ট্রিং

    প্রয়োজনীয় ডিবাগিং প্রোটোকল ভার্সন ("0.1")। শুধুমাত্র মেজর ভার্সন ম্যাচ করলে এবং মাইনর ভার্সন সমান বা বেশি হলে তবেই কোনও ব্যক্তি ডিবাগির সাথে অ্যাটাচ করতে পারবেন। প্রোটোকল ভার্সনের তালিকা এখানে পাওয়া যাবে।

  • কলব্যাক

    ফাংশন ঐচ্ছিক

    callback প্যারামিটারটি দেখতে এমন:

    () => void

রিটার্ন

  • Promise<void>

    Chrome 96+

    অ্যাটাচ করার অপারেশন সফল বা ব্যর্থ হলে সমাধান হয়ে যায়। প্রমিসটি কোনও ভ্যালু ছাড়াই সমাধান হয়ে যায়। অ্যাটাচ করা না গেলে, প্রতিশ্রুতি বাতিল করা হবে।

    Manifest V3 ও তার পরবর্তী ভার্সনের ক্ষেত্রেই শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হয়।

detach()

প্রতিশ্রুতি
chrome.debugger.detach(
  target: Debuggee,
  callback?: function,
)
: Promise<void>

প্রদত্ত টার্গেট থেকে ডিবাগারকে আলাদা করে।

প্যারামিটারগুলি

  • target

    আপনি যে টার্গেট থেকে ডিটাচ করতে চান সেটি।

  • কলব্যাক

    ফাংশন ঐচ্ছিক

    callback প্যারামিটারটি দেখতে এমন:

    () => void

রিটার্ন

  • Promise<void>

    Chrome 96+

    আলাদা করার অপারেশন সফল বা ব্যর্থ হলে সমাধান হয়ে যায়। প্রমিসটি কোনও ভ্যালু ছাড়াই সমাধান হয়ে যায়। আলাদা করা না গেলে, প্রতিশ্রুতি বাতিল করা হবে।

    Manifest V3 ও তার পরবর্তী ভার্সনের ক্ষেত্রেই শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হয়।

getTargets()

প্রতিশ্রুতি
chrome.debugger.getTargets(
  callback?: function,
)
: Promise<TargetInfo[]>

উপলভ্য ডিবাগ টার্গেটের তালিকা রিটার্ন করে।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন ঐচ্ছিক

    callback প্যারামিটারটি দেখতে এমন:

    (result: TargetInfo[]) => void

    • ফলাফল

      উপলভ্য ডিবাগ টার্গেটের সাথে সম্পর্কিত TargetInfo অবজেক্টের অ্যারে।

রিটার্ন

  • Promise<TargetInfo[]>

    Chrome 96+

    Manifest V3 ও তার পরবর্তী ভার্সনের ক্ষেত্রেই শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হয়।

sendCommand()

প্রতিশ্রুতি
chrome.debugger.sendCommand(
  target: DebuggerSession,
  method: string,
  commandParams?: object,
  callback?: function,
)
: Promise<object | undefined>

ডিবাগিং টার্গেটে প্রদত্ত কমান্ড পাঠায়।

প্যারামিটারগুলি

  • আপনি যে টার্গেটে কমান্ড পাঠাতে চান সেটি ডিবাগ করা।

  • পদ্ধতি

    স্ট্রিং

    মেথডের নাম। রিমোট ডিবাগিং প্রোটোকল দ্বারা সংজ্ঞায়িত পদ্ধতির মধ্যে একটি হতে হবে।

  • commandParams

    অবজেক্ট ঐচ্ছিক

    অনুরোধ প্যারামিটার সহ JSON অবজেক্ট। এই অবজেক্টকে প্রদত্ত পদ্ধতির জন্য রিমোট ডিবাগিং প্যারামিটার স্কিম মেনে চলতে হবে।

  • কলব্যাক

    ফাংশন ঐচ্ছিক

    callback প্যারামিটারটি দেখতে এমন:

    (result?: object) => void

    • ফলাফল

      অবজেক্ট ঐচ্ছিক

      JSON অবজেক্ট সহ উত্তর। মেথডের নামের উপর নির্ভর করে উত্তরের স্ট্রাকচার আলাদা হয় এবং রিমোট ডিবাগিং প্রোটোকলে কমান্ডের বিবরণের 'returns' অ্যাট্রিবিউট দ্বারা তা সংজ্ঞায়িত করা হয়।

রিটার্ন

  • Promise<object | undefined>

    Chrome 96+

    রেসপন্স বডি। মেসেজ পোস্ট করার সময় কোনও সমস্যা হলে, প্রতিশ্রুতি বাতিল করা হবে।

    Manifest V3 ও তার পরবর্তী ভার্সনের ক্ষেত্রেই শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হয়।

ইভেন্ট

onDetach

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

ট্যাবের জন্য ব্রাউজার ডিবাগিং সেশন বন্ধ করে দিলে ফায়ার করা হয়। ট্যাব বন্ধ করা হলে অথবা অ্যাটাচ করা ট্যাবের জন্য Chrome DevTools চালু করা হলে এটি হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এমন:

    (source: Debuggee, reason: DetachReason) => void

onEvent

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

ডিবাগ করার টার্গেট সংক্রান্ত সমস্যার ইনস্ট্রুমেন্টেশন ইভেন্ট ফায়ার করা হলে।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এমন:

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

    • সোর্স
    • পদ্ধতি

      স্ট্রিং

    • params

      অবজেক্ট ঐচ্ছিক