Chrome 155-এ chrome.debugger-এর জন্য আরও কঠোর এন্টারপ্রাইজ নীতি প্রয়োগ।

প্রকাশিত: ৮ সেপ্টেম্বর, ২০২৬

Chrome 155 থেকে শুরু করে, Chrome chrome.debugger API ব্যবহার করে এক্সটেনশনগুলির উপর এন্টারপ্রাইজ পলিসি বিধিনিষেধ প্রয়োগের পদ্ধতি আপডেট করেছে।

এই পরিবর্তনটি শুধুমাত্র সেইসব ম্যানেজড ব্রাউজারে চলমান এক্সটেনশনগুলির উপর প্রভাব ফেলবে, যেখানে কোনো অ্যাডমিনিস্ট্রেটর সুস্পষ্টভাবে runtime_blocked_hosts , DisableScreenshots , অথবা Data Loss Prevention (DLP) রুল কনফিগার করেছেন।

যদি কোনো এক্সটেনশন একটি আনম্যানেজড ব্রাউজারে, অথবা এই নির্দিষ্ট পলিসি বিধিনিষেধগুলো ছাড়া কোনো এন্টারপ্রাইজ পরিবেশে চলে, তাহলে chrome.debugger কোনো পরিবর্তন ছাড়াই স্বাভাবিকভাবে কাজ করতে থাকে।

সময়রেখা এবং রোলআউট

  • ক্রোম ১৫৫ বিটা: ১৬ সেপ্টেম্বর, ২০২৬
  • ক্রোম ১৫৫ স্টেবল রিলিজ: ৬ অক্টোবর, ২০২৬

ক্রোম ১৫৫-এর প্রধান পরিবর্তনসমূহ

নিম্নলিখিত পরিবর্তনগুলি শুধুমাত্র এন্টারপ্রাইজ পরিচালিত ব্রাউজারগুলিকে প্রভাবিত করে:

  • হোস্ট সীমাবদ্ধতা: যদি কোনো এন্টারপ্রাইজ পলিসি ( ExtensionSettings ) কোনো এক্সটেনশনের জন্য একটি অ-খালি ব্লক করা হোস্ট তালিকা ( runtime_blocked_hosts ) কনফিগার করে, তাহলে chrome.debugger.attach() নিম্নলিখিত কারণে সমস্ত টার্গেটে প্রত্যাখ্যাত হয়:

    "Host access is restricted by policy."

    runtime_allowed_hosts এ নির্দিষ্ট অরিজিন অন্তর্ভুক্ত থাকলেও এটি প্রযোজ্য।

  • স্ক্রিনশট এবং ডিএলপি সীমাবদ্ধতা: যদি কোনো এন্টারপ্রাইজ পলিসি ( DisableScreenshots বা Data Loss Prevention (DLP) রুলস) দ্বারা স্ক্রিনশট ক্যাপচার নিষ্ক্রিয় করা থাকে, তাহলে chrome.debugger.attach() নিম্নলিখিত ত্রুটির সাথে ব্যর্থ হয়:

    "Screenshot capture is restricted by policy."

ব্যক্তিগত প্রোফাইল এবং অপরিবর্তিত এনভায়রনমেন্টগুলোতে আগের মতোই chrome.debugger অবাধ অ্যাক্সেস থাকবে।

chrome.debugger API সরাসরি Chrome DevTools Protocol (CDP)-কে অ্যাক্সেস দেয়, যার মাধ্যমে যথেচ্ছ স্ক্রিপ্ট মূল্যায়ন এবং নেটওয়ার্ক ইন্টারসেপশনের মতো শক্তিশালী ক্ষমতাগুলো পাওয়া যায়। যেহেতু CDP ওয়েব প্ল্যাটফর্মের অরিজিন মডেলের অধীনে কাজ করে, তাই অরিজিন-ভিত্তিক ফিল্টারিং একে নিরাপদে সীমাবদ্ধ করতে পারে না। এই কারণে Chrome 155 একটি ‘হয় সব নয়তো কিছুই না’ মডেলের মাধ্যমে এর সমাধান করে, যেখানে chrome.debugger.attach() কল করার আগেই এন্টারপ্রাইজ পলিসিগুলো যাচাই করা হয়।

সংযুক্তি প্রত্যাখ্যানগুলি সুন্দরভাবে সামলান।

এন্টারপ্রাইজ ব্যবহারকারীদের স্পষ্ট প্রতিক্রিয়া জানাতে আপনার এক্সটেনশন কোডে সর্বদা অ্যাটাচ প্রত্যাখ্যানগুলি পরিচালনা করুন:

// Promise-based (Manifest V3)
try {
  await chrome.debugger.attach({ tabId }, "1.3");
} catch (error) {
  if (error.message.includes("Host access is restricted by policy")) {
    console.warn("Debugger attach blocked: Extension has host restrictions configured by enterprise policy.");
  } else if (error.message.includes("Screenshot capture is restricted by policy")) {
    console.warn("Debugger attach blocked: Screenshots or DLP restrictions are enforced by enterprise policy.");
  } else {
    console.warn("Debugger attach failed:", error.message);
  }
}

// Callback-based
chrome.debugger.attach({ tabId }, "1.3", () => {
  if (chrome.runtime.lastError) {
    console.warn("Debugger attach failed:", chrome.runtime.lastError.message);
  }
});

বিকল্প উচ্চ-স্তরের এপিআই বিবেচনা করুন

যদি আপনার এক্সটেনশনের জন্য সরাসরি CDP অ্যাক্সেসের একান্ত প্রয়োজন না হয়, তবে উচ্চ-স্তরের এক্সটেনশন API-গুলিতে স্থানান্তরের বিষয়টি বিবেচনা করুন, যেগুলো সূক্ষ্ম হোস্ট পারমিশন সমর্থন করে এবং এন্টারপ্রাইজ হোস্টের অ্যালাওলিস্ট ও ব্লকলিস্টের পাশাপাশি কাজ করে:

  • অনুমোদিত পৃষ্ঠাগুলিতে স্ক্রিপ্ট চালাতে ও স্টাইল যুক্ত করতে chrome.scripting API ব্যবহার করুন।
  • নেটওয়ার্ক অনুরোধগুলি ডিক্লারেটিভভাবে পরিদর্শন, পরিবর্তন বা ব্লক করতে chrome.declarativeNetRequest API ব্যবহার করুন।
  • সাধারণ হোস্ট পারমিশন সহ chrome.cookies API ব্যবহার করুন।

এন্টারপ্রাইজ প্রশাসকদের জন্য নির্দেশিকা

এক্সটেনশন পলিসি পরিচালনাকারী এন্টারপ্রাইজ অ্যাডমিনিস্ট্রেটরদের মনে রাখতে হবে যে, যেসব এক্সটেনশনের ডিবাগার পারমিশন প্রয়োজন, সেগুলো আংশিক হোস্ট বিধিনিষেধ ( runtime_blocked_hosts ) নিয়ে কাজ করতে পারে না। যদি কোনো এক্সটেনশনের chrome.debugger প্রয়োজন হয়, তবে তার ExtensionSettings এ কোনো ব্লকড হোস্ট কনফিগার করা থাকা যাবে না।

যদি DisableScreenshots অথবা Data Loss Prevention (DLP) নিয়ম ব্যবহার করে স্ক্রিনশট ক্যাপচার নিষ্ক্রিয় করা থাকে, তাহলে chrome.debugger.attach() ব্যর্থ হবে।

যেসব প্রতিষ্ঠানের হোস্ট ব্লক-লিস্ট বা স্ক্রিনশট সীমাবদ্ধতার প্রয়োজন, তাদের যাচাই করে দেখা উচিত যে তাদের অভ্যন্তরীণ বা অনুমোদিত এক্সটেনশনগুলি chrome.scripting বা chrome.declarativeNetRequest এর মতো উচ্চ-স্তরের API-তে স্থানান্তরিত হতে পারে কিনা।

মতামত জানান

আরও বিস্তারিত জানতে, chrome.debugger API ডকুমেন্টেশন দেখুন। আপনার কোনো প্রশ্ন বা মতামত থাকলে, Chromium Extensions Google Group- এ যোগাযোগ করুন।