ตัวเลือกการเผยแพร่ส่วนขยายอื่นๆ

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

โดยปกติแล้วผู้ใช้จะติดตั้งส่วนขยายจาก Chrome เว็บสโตร์ แต่บางครั้งคุณอาจต้องการติดตั้งส่วนขยายด้วยวิธีอื่น กรณีที่พบบ่อย 2 กรณีมีดังนี้

  • ส่วนขยายจะเชื่อมโยงกับซอฟต์แวร์อื่นๆ และควรติดตั้งส่วนขยายทุกครั้งที่ผู้ใช้ติดตั้งซอฟต์แวร์นั้น
  • ผู้ดูแลระบบเครือข่ายต้องการติดตั้งส่วนขยายเดียวกันทั่วทั้งองค์กร

ส่วนขยายที่ไม่ได้ติดตั้งจาก Chrome เว็บสโตร์เรียกว่าส่วนขยายภายนอก สำหรับนักพัฒนาซอฟต์แวร์ที่ต้องการเผยแพร่ส่วนขยายโดยเป็นส่วนหนึ่งของกระบวนการติดตั้งซอฟต์แวร์อื่นๆ หรือสำหรับผู้ดูแลระบบเครือข่ายที่ต้องการเผยแพร่ส่วนขยายทั่วทั้งองค์กร Google Chrome รองรับวิธีการติดตั้งส่วนขยายต่อไปนี้

  • การใช้ไฟล์ JSON ของค่ากำหนด (สำหรับ Mac OS X และ Linux เท่านั้น)
  • การใช้รีจิสทรีของ Windows (สำหรับ Windows เท่านั้น)

ทั้ง 2 วิธีรองรับการติดตั้งส่วนขยายที่โฮสต์ใน update_URL ใน Windows และ Mac ตัว update_URL ต้องชี้ไปที่ Chrome เว็บสโตร์ซึ่งต้องมีการโฮสต์ส่วนขยาย

ไฟล์ค่ากำหนดใน Linux สามารถชี้ไปที่เซิร์ฟเวอร์ของคุณเองที่คุณโฮสต์ส่วนขยายได้ ไฟล์ JSON ของค่ากำหนดยังรองรับการติดตั้งส่วนขยายจากไฟล์ส่วนขยาย .crx ในคอมพิวเตอร์ Linux ของผู้ใช้ด้วย

ก่อนเริ่มต้น

ขั้นแรก ให้publishส่วนขยายใน Chrome เว็บสโตร์ หรือรวมเป็นแพ็กเกจไฟล์ .crx และตรวจสอบว่าติดตั้งสำเร็จแล้ว

หากติดตั้งจาก URL การอัปเดต ให้ตรวจสอบว่าส่วนขยายได้รับการโฮสต์อย่างถูกต้อง

ก่อนที่จะแก้ไขไฟล์ค่ากำหนดหรือรีจิสทรี โปรดทราบข้อมูลต่อไปนี้

  • ตำแหน่งที่ต้องการของไฟล์ .crx ของส่วนขยาย หรือ URL อัปเดตจากที่แสดง
  • เวอร์ชันของส่วนขยาย (จากไฟล์ Manifest หรือหน้า chrome://extensions)
  • รหัสของส่วนขยาย (จากหน้า chrome://extensions เมื่อคุณโหลดส่วนขยายที่แพ็กไว้)

ตัวอย่างต่อไปนี้ขอสมมุติให้เวอร์ชันคือ 1.0 และรหัสคือ aaaaaaaaaabbbbbbbbbbcccccccccc

การใช้ไฟล์ค่ากำหนด

  1. หากคุณติดตั้งจากไฟล์บน Linux โปรดทำให้ไฟล์ส่วนขยาย .crx พร้อมใช้งานในเครื่องที่คุณต้องการติดตั้งส่วนขยาย (คัดลอกไปยังไดเรกทอรีในเครื่องหรือไปยังการแชร์เครือข่าย เช่น \\server\share\extension.crx หรือ /home/share/extension.crx)
  2. สร้างไฟล์ที่มีชื่อต่อไปนี้ในโฟลเดอร์ใดโฟลเดอร์หนึ่งที่แสดงด้านล่าง aaaaaaaaaabbbbbbbbbbcccccccccc.json โดยที่ชื่อไฟล์ (ไม่มีนามสกุล) ตรงกับรหัสส่วนขยาย ตำแหน่งจะขึ้นอยู่กับระบบปฏิบัติการ

    Mac OS X

    สำหรับผู้ใช้เฉพาะราย: ~USERNAME/Library/Application Support/Google/Chrome/External Extensions/ สำหรับผู้ใช้ทั้งหมด: /Library/Application Support/Google/Chrome/External Extensions/

    ไฟล์ส่วนขยายภายนอกสำหรับผู้ใช้ทุกคนจะอ่านต่อเมื่อไดเรกทอรีทั้งหมดในเส้นทางเป็นของผู้ใช้ root มีกลุ่ม admin หรือ wheel และไม่สามารถเขียนได้ทั่วโลก แต่เส้นทางนี้ ต้องไม่มีลิงก์สัญลักษณ์ ข้อจำกัดเหล่านี้ป้องกันไม่ให้ผู้ใช้ที่ไม่มีสิทธิ์ทำให้ติดตั้งส่วนขยายให้กับผู้ใช้ทุกราย ดูรายละเอียดในการแก้ปัญหา

    Linux:

    /opt/google/chrome/extensions/

    /usr/share/google-chrome/extensions/

    หมายเหตุ: ใช้ chmod หากจำเป็นเพื่อให้ไฟล์ aaaaaaaaaabbbbbbbbbbcccccccccc.json อ่านได้ทั่วโลก

  3. เฉพาะ Linux: หากจะติดตั้งจากไฟล์ ให้ระบุตำแหน่งและเวอร์ชันของส่วนขยายโดยใช้ช่องชื่อ "external_crx" และ "external_version" ในไฟล์ที่สร้างขึ้นด้านบน

    • ตัวอย่าง
    • json { "external_crx": "/home/share/extension.crx", "external_version": "1.0" }
    • หมายเหตุ: คุณต้องแยก \` character in the location. For example,\server\share\extension.crxwould be"\\server\share\extension.crx"` เป็นอักขระหลีก
    • หากคุณจะติดตั้งจาก URL อัปเดต ให้ระบุ URL อัปเดตของส่วนขยายด้วยชื่อช่อง "external_update_url"
    • ตัวอย่างการติดตั้งจากไฟล์ .crx ในเครื่อง (Linux เท่านั้น):
    • json { "external_update_url": "http://myhost.com/mytestextension/updates.xml" }
    • ตัวอย่างการติดตั้งจาก Chrome เว็บสโตร์ (Mac และ Linux):
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx" }
    • หากต้องการติดตั้งส่วนขยายในบางภาษาของเบราว์เซอร์เท่านั้น คุณระบุภาษาที่รองรับในชื่อช่อง "supported_locale" ได้ ภาษาอาจระบุภาษาหลัก เช่น "en" ในกรณีนี้ ส่วนขยายจะได้รับการติดตั้งสำหรับภาษาอังกฤษทุกภาษา เช่น "en-US", "en-GB" เป็นต้น หาก เลือกภาษาของเบราว์เซอร์อื่นที่ส่วนขยายไม่รองรับ ส่วนขยายภายนอกจะถูกถอนการติดตั้ง หากรายการ "supported_locales" หายไป ระบบจะติดตั้งส่วนขยายในทุกภาษา
    • ตัวอย่าง
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx", "supported_locales": [ "en", "fr", "de" ] }
  4. บันทึกไฟล์ JSON

  5. เปิด Google Chrome แล้วไปที่ chrome://extensions ซึ่งคุณจะเห็นส่วนขยายแสดงอยู่

การแก้ปัญหาเกี่ยวกับสิทธิ์ของ Mac OS

ใน Mac OS ไฟล์ส่วนขยายภายนอกสำหรับผู้ใช้ทุกคนจะได้รับการอ่านต่อเมื่อสิทธิ์ของระบบไฟล์ป้องกันไม่ให้ผู้ใช้ที่ไม่มีสิทธิ์ทำการเปลี่ยนแปลงเท่านั้น หากคุณไม่เห็นส่วนขยายภายนอกติดตั้งอยู่เมื่อเปิด Chrome ขึ้นมา อาจมีปัญหาเกี่ยวกับสิทธิ์ในไฟล์ค่ากำหนดส่วนขยายภายนอก หากต้องการดูว่าปัญหาเกิดจากสาเหตุหรือไม่ ให้ทำตามขั้นตอนต่อไปนี้

  1. เปิดโปรแกรม Console คุณสามารถดาวน์โหลดได้ในส่วน /Applications/Utilities/Console
  2. หากไอคอนด้านซ้ายสุดในคอนโซลระบุว่า "แสดงรายการบันทึก" ให้คลิกไอคอนนั้น คอลัมน์ที่ 2 จะปรากฏขึ้นทางด้านซ้าย
  3. คลิก "ข้อความคอนโซล" ในแผงด้านซ้าย
  4. ค้นหาสตริงอ่านส่วนขยายภายนอกไม่ได้ ถ้าคุณมีปัญหาในการอ่านไฟล์ส่วนขยายภายนอก คุณจะเห็นข้อความแสดงข้อผิดพลาด มองหาข้อความแสดงข้อผิดพลาดอื่น ที่ด้านบนโดยตรง ซึ่งจะอธิบายปัญหาได้ ตัวอย่างเช่น หากคุณเห็นข้อผิดพลาดต่อไปนี้ "Path /Library/Application Support/Google/Chrome เป็นของกลุ่มที่ไม่ถูกต้อง" คุณต้องใช้ chgrp หรือกล่องโต้ตอบ "รับข้อมูล" ของ Finder เพื่อเปลี่ยนเจ้าของกลุ่มไดเรกทอรีเป็นกลุ่มผู้ดูแลระบบ
  5. หลังจากแก้ปัญหาแล้ว ให้เปิด Chrome ขึ้นมาใหม่ ทดสอบว่ามีการติดตั้งส่วนขยายภายนอกแล้ว เป็นไปได้ว่าข้อผิดพลาดด้านสิทธิ์หนึ่งรายการทำให้ Chrome ไม่สามารถตรวจหาข้อผิดพลาดรายการที่ 2 หากไม่ได้ติดตั้งส่วนขยายภายนอก ให้ทำขั้นตอนเหล่านี้ซ้ำจนกว่าจะไม่เห็นข้อผิดพลาดในแอปพลิเคชันคอนโซล

การใช้รีจิสทรี Windows

  1. ค้นหาหรือสร้างคีย์ต่อไปนี้ในรีจิสทรี
    • Windows แบบ 32 บิต: HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
    • Windows 64 บิต: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
  2. สร้างคีย์ (โฟลเดอร์) ใหม่ภายใต้คีย์ส่วนขยาย โดยใช้ชื่อเดียวกับรหัสของส่วนขยาย (เช่น aaaaaaaaaabbbbbbbbbbcccccccccc)
  3. ในคีย์ของส่วนขยาย ให้สร้างพร็อพเพอร์ตี้ "update_url" แล้วตั้งเป็นค่า "https://clients2.google.com/service/update2/crx" (ชี้ไปยัง crx ของส่วนขยายใน Chrome เว็บสโตร์):

    {
      "update_url": "https://clients2.google.com/service/update2/crx"
    }
    
  4. เปิดเบราว์เซอร์และไปที่ chrome://extensions จากนั้นคุณจะเห็นส่วนขยายแสดงอยู่

การอัปเดตและถอนการติดตั้ง

Google Chrome จะสแกนรายการข้อมูลเมตาในค่ากำหนดและรีจิสทรีทุกครั้งที่เบราว์เซอร์เริ่มทำงาน และทำการเปลี่ยนแปลงที่จำเป็นกับส่วนขยายภายนอกที่ติดตั้ง

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

หากต้องการถอนการติดตั้งส่วนขยาย (เช่น หากถอนการติดตั้งซอฟต์แวร์) ให้นำไฟล์ค่ากำหนด (aaaaaaaaabbbbbbbbbbcccccccc.json) หรือข้อมูลเมตาออกจากรีจิสทรี

คำถามที่พบบ่อย

ส่วนนี้ตอบคำถามที่พบบ่อยเกี่ยวกับส่วนขยายภายนอก

Google Chrome จะยังรองรับวิธีการอนุญาต "ติดตั้งล่วงหน้า" ตั้งแต่เวอร์ชัน M33 เป็นต้นไปไหม

ใช่ แต่เป็นการติดตั้งจาก Chrome เว็บสโตร์ update_URL เท่านั้น ไม่ใช่จากเส้นทางไฟล์ในเครื่อง

ฉันระบุ URL เป็นเส้นทางไปยังส่วนขยายภายนอกได้ไหม

มี ให้ใช้ไฟล์ preferences JSON สำหรับ Mac OS X และ Linux ซึ่งก็คือregistryสำหรับ Windows ส่วนขยายดังกล่าวต้องโฮสต์ตามที่อธิบายไว้ในการโฮสต์ ในไฟล์ค่ากำหนด ใช้พร็อพเพอร์ตี้ "external_update_url" เพื่อชี้ไปที่ไฟล์ Manifest อัปเดตที่มี URL สำหรับส่วนขยาย ในรีจิสทรีของ Windows ให้ใช้พร็อพเพอร์ตี้ "update_url"

ข้อผิดพลาดที่พบบ่อยเมื่อติดตั้งด้วยไฟล์ค่ากำหนด

  • ไม่ได้ระบุรหัส/เวอร์ชันเดียวกันกับที่แสดงใน .crx
  • ไฟล์ .json (aaaaaaaaaabbbbbbbbbbcccccccccc.json) อยู่ในตำแหน่งที่ไม่ถูกต้องหรือรหัสที่ระบุไม่ตรงกับรหัสส่วนขยาย
  • ข้อผิดพลาดด้านไวยากรณ์ในไฟล์ JSON (ลืมแยกรายการด้วยเครื่องหมายจุลภาค หรือใส่คอมมาต่อท้าย)
  • จุดแรกเข้าของไฟล์ JSON ชี้ไปเส้นทางที่ไม่ถูกต้องไปยัง .crx (หรือเส้นทางที่ระบุแต่ไม่มีชื่อไฟล์)
  • แบ็กสแลชในเส้นทาง UNC ไม่ได้กำหนดเป็นอักขระหลีก (เช่น "\\server\share\file" ไม่ถูกต้อง แต่ควรเป็น "\\\\server\\share\\extension")
  • ปัญหาเกี่ยวกับสิทธิ์ในการแชร์เครือข่าย

ข้อผิดพลาดที่พบบ่อยเมื่อติดตั้งด้วยรีจิสทรี

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

ฉันจะอัปเดตไบนารีเนทีฟและส่วนขยายภายในขั้นตอนได้อย่างไร

ก่อนหน้านี้เมื่อมีการรองรับส่วนขยายจากนอกสโตร์ ระบบอาจอัปเดตไบนารีแบบเนทีฟและชิ้นงานในขั้นตอนการล็อก อย่างไรก็ตาม ส่วนขยายที่โฮสต์ใน Chrome เว็บสโตร์จะอัปเดตผ่านกลไกการอัปเดต Chrome ซึ่งนักพัฒนาซอฟต์แวร์ไม่ได้ควบคุม นักพัฒนาส่วนขยายควรระมัดระวังการอัปเดตส่วนขยายที่อาศัยไบนารีของโฆษณาเนทีฟ (เช่น ส่วนขยายเดิมที่ใช้ NPAPI)

จะเกิดอะไรขึ้นหากผู้ใช้ถอนการติดตั้งส่วนขยาย

หากผู้ใช้ถอนการติดตั้งส่วนขยายผ่าน UI จะไม่มีการติดตั้งหรืออัปเดตส่วนขยายดังกล่าวเมื่อเริ่มต้นใช้งานแต่ละครั้งอีกต่อไป กล่าวคือ ส่วนขยายภายนอกอยู่ในรายการที่บล็อก

ฉันจะออกจากรายการที่บล็อกได้อย่างไร

หากผู้ใช้ถอนการติดตั้งส่วนขยายของคุณ คุณควรเคารพการตัดสินใจดังกล่าว อย่างไรก็ตาม หากคุณ (นักพัฒนาแอป) ถอนการติดตั้งส่วนขยายผ่าน UI โดยไม่ได้ตั้งใจ คุณสามารถนำแท็กรายการที่บล็อกออกได้โดยติดตั้งส่วนขยายตามปกติผ่าน UI แล้วถอนการติดตั้ง