ส่วนขยาย 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
การใช้ไฟล์ค่ากำหนด
- หากคุณติดตั้งจากไฟล์บน Linux โปรดทำให้ไฟล์ส่วนขยาย
.crx
พร้อมใช้งานในเครื่องที่คุณต้องการติดตั้งส่วนขยาย (คัดลอกไปยังไดเรกทอรีในเครื่องหรือไปยังการแชร์เครือข่าย เช่น\\server\share\extension.crx
หรือ/home/share/extension.crx
) สร้างไฟล์ที่มีชื่อต่อไปนี้ในโฟลเดอร์ใดโฟลเดอร์หนึ่งที่แสดงด้านล่าง
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
อ่านได้ทั่วโลก
เฉพาะ 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" ] }
บันทึกไฟล์ JSON
เปิด Google Chrome แล้วไปที่ chrome://extensions ซึ่งคุณจะเห็นส่วนขยายแสดงอยู่
การแก้ปัญหาเกี่ยวกับสิทธิ์ของ Mac OS
ใน Mac OS ไฟล์ส่วนขยายภายนอกสำหรับผู้ใช้ทุกคนจะได้รับการอ่านต่อเมื่อสิทธิ์ของระบบไฟล์ป้องกันไม่ให้ผู้ใช้ที่ไม่มีสิทธิ์ทำการเปลี่ยนแปลงเท่านั้น หากคุณไม่เห็นส่วนขยายภายนอกติดตั้งอยู่เมื่อเปิด Chrome ขึ้นมา อาจมีปัญหาเกี่ยวกับสิทธิ์ในไฟล์ค่ากำหนดส่วนขยายภายนอก หากต้องการดูว่าปัญหาเกิดจากสาเหตุหรือไม่ ให้ทำตามขั้นตอนต่อไปนี้
- เปิดโปรแกรม Console คุณสามารถดาวน์โหลดได้ในส่วน /Applications/Utilities/Console
- หากไอคอนด้านซ้ายสุดในคอนโซลระบุว่า "แสดงรายการบันทึก" ให้คลิกไอคอนนั้น คอลัมน์ที่ 2 จะปรากฏขึ้นทางด้านซ้าย
- คลิก "ข้อความคอนโซล" ในแผงด้านซ้าย
- ค้นหาสตริงอ่านส่วนขยายภายนอกไม่ได้ ถ้าคุณมีปัญหาในการอ่านไฟล์ส่วนขยายภายนอก คุณจะเห็นข้อความแสดงข้อผิดพลาด มองหาข้อความแสดงข้อผิดพลาดอื่น
ที่ด้านบนโดยตรง ซึ่งจะอธิบายปัญหาได้ ตัวอย่างเช่น หากคุณเห็นข้อผิดพลาดต่อไปนี้
"Path /Library/Application Support/Google/Chrome เป็นของกลุ่มที่ไม่ถูกต้อง" คุณต้องใช้
chgrp
หรือกล่องโต้ตอบ "รับข้อมูล" ของ Finder เพื่อเปลี่ยนเจ้าของกลุ่มไดเรกทอรีเป็นกลุ่มผู้ดูแลระบบ - หลังจากแก้ปัญหาแล้ว ให้เปิด Chrome ขึ้นมาใหม่ ทดสอบว่ามีการติดตั้งส่วนขยายภายนอกแล้ว เป็นไปได้ว่าข้อผิดพลาดด้านสิทธิ์หนึ่งรายการทำให้ Chrome ไม่สามารถตรวจหาข้อผิดพลาดรายการที่ 2 หากไม่ได้ติดตั้งส่วนขยายภายนอก ให้ทำขั้นตอนเหล่านี้ซ้ำจนกว่าจะไม่เห็นข้อผิดพลาดในแอปพลิเคชันคอนโซล
การใช้รีจิสทรี Windows
- ค้นหาหรือสร้างคีย์ต่อไปนี้ในรีจิสทรี
- Windows แบบ 32 บิต:
HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
- Windows 64 บิต:
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
- Windows แบบ 32 บิต:
- สร้างคีย์ (โฟลเดอร์) ใหม่ภายใต้คีย์ส่วนขยาย โดยใช้ชื่อเดียวกับรหัสของส่วนขยาย (เช่น
aaaaaaaaaabbbbbbbbbbcccccccccc
) ในคีย์ของส่วนขยาย ให้สร้างพร็อพเพอร์ตี้ "update_url" แล้วตั้งเป็นค่า "https://clients2.google.com/service/update2/crx" (ชี้ไปยัง crx ของส่วนขยายใน Chrome เว็บสโตร์):
{ "update_url": "https://clients2.google.com/service/update2/crx" }
เปิดเบราว์เซอร์และไปที่ 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 แล้วถอนการติดตั้ง