اجرای سخت‌گیرانه‌تر خط‌مشی سازمانی برای chrome.debugger در Chrome 155

تاریخ انتشار: ۸ سپتامبر ۲۰۲۶، آخرین به‌روزرسانی: ۴ نوامبر ۲۰۲۶

از Chrome نسخه ۱۵۵، Chrome نحوه اعمال محدودیت‌های خط‌مشی سازمانی را برای افزونه‌هایی که از chrome.debugger API استفاده می‌کنند به‌روز می‌کند.

این تغییر فقط بر افزونه‌هایی تأثیر می‌گذارد که در مرورگرهای مدیریت‌شده‌ای اجرا می‌شوند که سرپرست به‌طور صریح runtime_blocked_hosts، DisableScreenshots، یا قوانین «پیشگیری از ازبین رفتن داده‌ها» (DLP) را پیکربندی کرده است.

اگر افزونه‌ای در مرورگر مدیریت‌نشده یا در محیط سازمانی بدون این محدودیت‌های خط‌مشی خاص اجرا شود، chrome.debugger بدون هیچ تغییری به عملکرد عادی خود ادامه می‌دهد.

خط زمان و عرضه

  • Chrome 155 Beta: ۱۶ سپتامبر ۲۰۲۶
  • عرضه نسخه پایدار Chrome 155: ۶ اکتبر ۲۰۲۶
  • بازگشت به نسخه قبلی: ۳ نوامبر ۲۰۲۶

تغییرات کلیدی در Chrome 155

تغییرات زیر فقط بر مرورگرهای تحت مدیریت سازمانی تأثیر می‌گذارد:

  • محدودیت‌های میزبان: اگر خط‌مشی سازمانی (ExtensionSettings) فهرست میزبان‌های مسدودشده غیرخالی (runtime_blocked_hosts) را برای افزونه‌ای پیکربندی کند، chrome.debugger.attach() در همه هدف‌ها با این پیام رد می‌شود:

    "Host access is restricted by policy."

    این موضوع حتی درصورتی‌که مبدأهای خاصی در runtime_allowed_hosts گنجانده شده باشد نیز صادق است.

  • محدودیت‌های نماگرفت و DLP: اگر ضبط نماگرفت توسط خط‌مشی سازمانی (DisableScreenshots یا قوانین «جلوگیری از ازبین رفتن داده‌ها» (DLP)) غیرفعال شده باشد، chrome.debugger.attach() با این خطا ناموفق می‌شود:

    "Screenshot capture is restricted by policy."

نمایه‌های شخصی و محیط‌های مدیریت‌نشده همچنان مانند قبل دسترسی نامحدود به chrome.debugger دارند.

‫chrome.debugger API دسترسی مستقیم به پروتکل Chrome DevTools‏ (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 با اجازه‌های میزبان استاندارد استفاده کنید.

راهنمایی برای سرپرستان سازمانی

به‌روزرسانی (۴ نوامبر ۲۰۲۶): اجرای خط‌مشی Chrome 155 ازطریق به‌روزرسانی پیکربندی سمت سرور بازگردانده شده است، که Chrome به‌طور خودکار بارگیری می‌کند و پس‌از بازراه‌اندازی اعمال می‌کند. برای غیرفعال کردن این الزام بدون منتظر ماندن برای این به‌روزرسانی، Chrome را با پرچم خط فرمان --disable-features=ExtensionDebuggerStrictPolicyRestrictions راه‌اندازی کنید.

تا زمانی که بازگشت به نسخه قبلی اعمال شود، راهنمایی زیر همچنان اعمال می‌شود.

سرپرستان سازمانی که خط‌مشی‌های افزونه را مدیریت می‌کنند باید توجه داشته باشند که افزونه‌هایی که به اجازه اشکال‌زدا نیاز دارند نمی‌توانند با محدودیت‌های جزئی میزبان (runtime_blocked_hosts) کار کنند. اگر افزونه‌ای به chrome.debugger نیاز داشته باشد، نباید میزبان‌های مسدودشده‌ای داشته باشد که در ExtensionSettings پیکربندی شده‌اند.

اگر ضبط نماگرفت بااستفاده از DisableScreenshots یا قوانین «جلوگیری از ازبین رفتن داده‌ها» (DLP) غیرفعال شده باشد، chrome.debugger.attach() ناموفق خواهد بود.

سازمان‌هایی که به فهرست غیرمجازهای میزبان یا محدودیت‌های نماگرفت نیاز دارند باید بررسی کنند که آیا افزونه‌های داخلی یا تأییدشده آن‌ها می‌توانند به میاناهای برنامه‌سازی کاربردی سطح بالاتر مانند chrome.scripting یا chrome.declarativeNetRequest منتقل شوند یا نه.

هم‌رسانی بازخورد

برای جزئیات بیشتر، به اسناد میانای برنامه‌سازی کاربردی chrome.debugger مراجعه کنید. اگر سؤال یا بازخوردی دارید، ازطریق گروه Google افزونه‌های Chromium با ما تماس بگیرید.