ลงทะเบียน onStartup และ onInstalled อย่างซิงโครนัสที่ระดับบนสุดของ service worker Manifest V3 เมื่อเหตุการณ์เหล่านั้นต้องใช้พร็อกซีที่เลือกไว้ สำหรับส่วนขยายที่ตั้งใจตรึงไว้กับเส้นทางเดียว:

function applyProxy() {
  chrome.proxy.settings.set({
    value: {
      mode: 'fixed_servers',
      rules: {
        singleProxy: {
          scheme: 'http',
          host: 'proxy.example',
          port: 8080,
        },
      },
    },
    scope: 'regular',
  }, () => {
    if (chrome.runtime.lastError) {
      console.error(chrome.runtime.lastError.message);
    }
  });
}

chrome.runtime.onStartup.addListener(applyProxy);
chrome.runtime.onInstalled.addListener(applyProxy);

manifest ต้องประกาศสิทธิ์พร็อกซีและระบุชื่อ worker เบื้องหลังนี้ สำหรับเส้นทางการท่องเว็บสาธารณะที่อนุญาตโดยไม่มีการพิสูจน์ตัวตนพร็อกซี ให้เปลี่ยนปลายทางเป็นผู้สมัครจากรายการพร็อกซี HTTP โดยคงพอร์ตเป็นจำนวนเต็ม

onStartup คือการเริ่มต้นโปรไฟล์เมื่อติดตั้งส่วนขยายแล้ว onInstalled ครอบคลุมการอัปเดตด้วย รวมถึงการโหลดส่วนขยายที่ยังไม่แพ็กใหม่ซึ่งนับเป็นการอัปเดต เหตุการณ์สร้างหน้าต่างอธิบายแต่ละหน้าต่างและอาจเกิดขึ้นซ้ำได้ในการใช้งานครั้งเดียว

หากส่วนขยายมีโปรไฟล์ที่บันทึกไว้หรือสวิตช์ปิด ให้ตัวจัดการโหลดและใช้ตัวเลือกนั้นแทนการรีเซ็ตค่าเริ่มต้นที่เขียนตายตัวทุกครั้งที่อัปเดต การลงทะเบียนตัวรับฟังยังคงอยู่ที่ระดับบนสุด งานแบบอะซิงโครนัสสามารถเริ่มได้เมื่อ Chrome เรียกตัวจัดการ

ทดสอบการติดตั้งและการเริ่มต้นโปรไฟล์แยกกันระหว่างการพัฒนา โดยตรวจสอบผลการกำหนดค่าของแต่ละอย่าง ทั้งสองคือเส้นทางการเริ่มต้นสองเส้น ไม่ใช่หลักฐานที่ได้จากการเปิดหน้าต่างอื่น

บทความที่เกี่ยวข้อง