กลับไปบล็อก

Chromium คืออะไร: ฐานของเบราว์เซอร์และขอบเขตของมัน

Chromium เป็นโปรเจกต์เบราว์เซอร์โอเพนซอร์ส และเป็นฐานร่วมของเบราว์เซอร์อย่าง Chrome, Edge, Brave และ Opera แต่ตัวมันเองไม่ใช่ผลิตภัณฑ์สำเร็จรูปสำหรับผู้ใช้ทั่วไป บทความอธิบายความสัมพันธ์ระหว่างโปรเจกต์กับดิสทริบิวชัน และสิ่งที่ประโยคที่ว่าอิงกับ Chromium ยืนยันได้และยืนยันไม่ได้

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

โปรเจกต์ ไม่ใช่ผลิตภัณฑ์

ชั้นต่าง ๆ ตั้งแต่การบิลด์เบราว์เซอร์ของโปรเจกต์ Chromium ไปจนถึงผลิตภัณฑ์สำหรับผู้ใช้

Chromium เป็นโปรเจกต์โอเพนซอร์ส เปิดเป็นโอเพนซอร์สในปี 2008 พร้อมกับ Chrome ประกอบด้วยเรนเดอริงเอนจิน Blink จาวาสคริปต์เอนจิน V8 และโค้ดอินเทอร์เฟซเบราว์เซอร์ทั้งหมด Google เป็นผู้นำในการดูแล แต่โค้ดเปิดเผยต่อสาธารณะ ใครก็สามารถนำไปสร้างดิสทริบิวชันของตัวเองได้

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

ทำไมทุกคนถึงใช้มัน

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

เส้นทางจึงแยกออกจากกัน Chrome เป็นผลิตภัณฑ์ของ Google เอง Edge เลิกใช้เอนจินของตัวเองในปี 2020 แล้วเปลี่ยนมาใช้ Chromium ส่วน Opera เดินเส้นทางนี้ก่อนหน้านั้น และ Brave, Vivaldi กับ Samsung Internet ก็สร้างความแตกต่างบนฐานนี้เช่นกัน WebView ใน Android และแอป Electron บนเดสก์ท็อปก็ใช้ Chromium เช่นเดียวกัน ตรงกันข้าม Firefox ใช้ Gecko และ Safari ใช้ WebKit ซึ่งเป็นอีกเส้นทางเทคนิคหนึ่ง

ความต่างจาก Chrome

ต้นกำเนิดเดียวกันไม่ได้หมายความว่าเป็นสิ่งเดียวกัน Chrome เพิ่มตัวอัปเดตอัตโนมัติ สถิติการแครชและการใช้งาน และการซิงก์บัญชี Google เข้าไปบน Chromium อีกทั้งซื้อลิขสิทธิ์เพื่อใส่ตัวเข้ารหัสแบบปิดอย่าง H.264 และ AAC รวมถึง Widevine DRM เว็บสตรีมมิ่งจึงเล่นได้ตามปกติ บิลด์อย่างเป็นทางการของ Chromium มักไม่มีสิ่งเหล่านี้ หน้าเล่นวิดีโออาจเปิดได้แต่เล่นไม่ได้ และไม่มีการลงชื่อเข้าใช้หรือการซิงก์ให้เห็น

ค่าเริ่มต้นด้านความเป็นส่วนตัวก็ต่างกัน Chromium ไม่ส่งข้อมูลเทเลเมทรีกลับ แต่ก็ไม่ได้มีชุดสวิตช์ความเป็นส่วนตัวแบบที่ Chrome มี เบราว์เซอร์ที่ต่อยอดต่างมีทางเลือกของตัวเอง โดย Brave บล็อกโฆษณาและสคริปต์ติดตามเป็นค่าเริ่มต้น ส่วน Edge เปลี่ยนระบบบัญชีเป็นของ Microsoft ความต่างเหล่านี้ไม่ได้อยู่ในเอนจินเลย

อีกความต่างที่มักถูกมองข้ามคือความคืบหน้าของเวอร์ชัน ระหว่างผู้ผลิตที่ต่อยอดกับต้นน้ำมีความเหลื่อมของเวลา บางเลขเวอร์ชันดูเหมือนตามติดกันมาก แต่จริง ๆ แล้วแพตช์ถูกผสานแยกกัน เมื่อเจอปัญหาที่เกิดกับเบราว์เซอร์ตัวใดตัวหนึ่ง ควรยืนยันเวอร์ชันก่อน แล้วจึงสงสัยเอนจิน

ทำไมความเข้ากันได้และระบบอัตโนมัติจึงให้ความสำคัญ

เมื่อการพัฒนาฝั่งหน้าบ้านเจอหน้าที่ทำงานปกติใน Chrome แต่ผิดพลาดในเบราว์เซอร์อื่น ขั้นแรกคือต้องตัดสินว่าเป็นปัญหาเอนจินหรือการแก้ไขของผู้ผลิต ตราบใดที่ทุกตัวอย่างอยู่บน Chromium พฤติกรรมของ CSS และ JavaScript ก็คาดเดาได้ค่อนข้างมาก และความต่างส่วนใหญ่มาจากเวอร์ชันที่ใหม่หรือเก่ากับแพตช์ของผู้ผลิต

ระบบอัตโนมัติก็ได้ประโยชน์เช่นกัน การมีโปรโตคอลดีบักร่วมกันหมายความว่าสคริปต์ที่เขียนสำหรับ Chromium มักรันได้ทันทีบนเบราว์เซอร์ที่ต่อยอด อินเทอร์เฟซของ DevTools และวิธีเรียกโหมด headless ก็สอดคล้องกัน ปัญหาอยู่ที่เวอร์ชัน ผู้ผลิตที่ต่อยอดตามต้นน้ำด้วยจังหวะต่างกัน บางรายตามหลังหลายเวอร์ชัน สคริปต์เดียวกันรันได้บนเวอร์ชันเก่าแต่แจ้งข้อผิดพลาดบนเวอร์ชันใหม่ หรือใช้ได้บนเบราว์เซอร์ A แต่ใช้ไม่ได้บน B ดังนั้นการล็อกเวอร์ชันจึงสำคัญกว่าการไล่ตามเวอร์ชันใหม่สุด

งานระบบอัตโนมัติที่ต้องรันขนานกันระยะยาวมักล็อก Chromium ไว้หนึ่งเวอร์ชันและใช้ร่วมกับสภาพแวดล้อมการรันที่แยกออกมา เครื่องมือแยกหลายบัญชีก็มักใช้ Chromium เป็นฐานเช่นกัน เพราะเป็นโอเพนซอร์ส ล็อกเวอร์ชันได้ และมีอินเทอร์เฟซส่วนขยายกับระบบอัตโนมัติครบถ้วน PurpleMark เป็นเครื่องมือประเภทนี้ ให้แต่ละบัญชีมีสภาพแวดล้อมเบราว์เซอร์แยกอิสระ และแยกโปรไฟล์ ทางออกเครือข่าย และลักษณะเฉพาะของอุปกรณ์ออกจากกัน

ประโยคนี้บอกอะไรได้ และบอกอะไรไม่ได้

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

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

การเห็นว่าอิงกับ Chromium แล้วถือว่าเป็นเบราว์เซอร์ตัวเดียวกันคือความเข้าใจผิดที่พบบ่อยที่สุด สิ่งที่กำหนดประสบการณ์ในชีวิตประจำวันจริง ๆ คือแต่ละบริษัทเพิ่มอะไรบนฐานนี้ ตัดอะไรออก และซิงก์กับต้นน้ำบ่อยแค่ไหน