Quay lại blog

Chromium là gì: nền tảng của trình duyệt và giới hạn của nó

Chromium là một dự án trình duyệt mã nguồn mở, đồng thời là nền tảng chung của các trình duyệt như Chrome, Edge, Brave và Opera, nhưng bản thân nó không phải là sản phẩm hoàn chỉnh dành cho người dùng phổ thông. Bài viết giải thích quan hệ giữa dự án và các bản phân phối, cùng những gì câu nói dựa trên Chromium xác định được và không xác định được.

Khi cài trình duyệt, rất ít người nhận ra rằng Edge, Brave, Opera, Vivaldi và Chrome dùng chung một bộ mã nền. Bộ mã đó tên là Chromium, và nó quyết định cách trang được kết xuất, cách script được thực thi, và tiện ích mở rộng gọi được những giao diện nào.

Dự án, không phải sản phẩm

Các tầng từ bản dựng trình duyệt của dự án Chromium đến sản phẩm dành cho người dùng

Chromium là một dự án mã nguồn mở, được mở mã nguồn vào năm 2008 cùng với Chrome, bao gồm engine kết xuất Blink, engine JavaScript V8, và toàn bộ mã giao diện trình duyệt. Google dẫn đầu việc bảo trì, nhưng mã là công khai, và bất kỳ ai cũng có thể lấy để tạo bản phân phối của riêng mình.

Khác biệt then chốt là ở đây: bản thân Chromium không phải sản phẩm hoàn chỉnh dành cho người dùng phổ thông. Thứ được cung cấp chính thức là các ảnh chụp được dựng liên tục, không có trình tự cập nhật, không có hệ thống tài khoản, cũng không có hỗ trợ về thương hiệu hay dịch vụ. Điều đó cũng giải thích vì sao nhiều người sau khi tải Chromium mới phát hiện phải tự tay cập nhật.

Vì sao ai cũng dùng nó

Chi phí duy trì engine trình duyệt cao đến mức vô lý. Để theo kịp tiêu chuẩn web, vá lỗ hổng bảo mật, thích ứng với nhiều hệ điều hành và phần cứng mới, cần một đội ngũ đầu tư lâu dài. Tự viết từ đầu là không thực tế, còn tách nhánh từ Chromium rồi sửa đổi thì rẻ hơn nhiều, lại thừa hưởng trực tiếp hệ sinh thái tiện ích mở rộng và công cụ gỡ lỗi.

Thế là các con đường tách ra. Chrome là sản phẩm của chính Google; Edge từ bỏ engine tự phát triển vào năm 2020 và chuyển sang Chromium; Opera đi bước này sớm hơn; Brave, Vivaldi và Samsung Internet cũng tạo khác biệt trên nền tảng này. WebView trong Android và ứng dụng Electron trên máy tính cũng dùng Chromium. Ngược lại, Firefox dùng Gecko và Safari dùng WebKit, một hướng kỹ thuật khác.

Khác biệt so với Chrome

Cùng nguồn gốc không có nghĩa là cùng một thứ. Chrome thêm vào Chromium trình tự cập nhật, thống kê sự cố và mức sử dụng, đồng bộ tài khoản Google, và mua giấy phép để đưa vào các codec độc quyền như H.264, AAC cùng Widevine DRM, nhờ đó các trang phát trực tuyến chạy bình thường. Bản dựng chính thức của Chromium thường không có những thứ này; trang video có thể mở được nhưng không phát được, và không tìm thấy đăng nhập hay đồng bộ.

Giá trị mặc định về quyền riêng tư cũng khác. Chromium không gửi dữ liệu đo từ xa về, nhưng cũng không cung cấp bộ công tắc quyền riêng tư như Chrome; các trình duyệt hạ nguồn có lựa chọn riêng, Brave mặc định chặn quảng cáo và script theo dõi, Edge thay hệ thống tài khoản bằng của Microsoft. Những khác biệt này đều không nằm trong engine.

Một khác biệt nữa thường bị bỏ qua là tiến độ phiên bản. Giữa nhà sản xuất hạ nguồn và dự án thượng nguồn có độ trễ về thời gian, có số phiên bản trông như bám rất sát nhưng thực tế các bản vá được hợp nhất riêng. Khi gặp vấn đề chỉ xuất hiện trên một trình duyệt cụ thể, hãy xác nhận phiên bản trước, rồi mới nghi ngờ engine.

Vì sao khả năng tương thích và tự động hóa quan tâm đến nó

Khi phát triển front-end gặp một trang chạy bình thường trên Chrome nhưng lỗi trên trình duyệt khác, bước đầu tiên là xác định đó là vấn đề engine hay thay đổi của nhà sản xuất. Chừng nào tất cả còn trên Chromium, hành vi của CSS và JavaScript phần lớn có thể dự đoán được, và khác biệt chủ yếu đến từ độ mới của phiên bản và các bản vá của nhà sản xuất.

Tự động hóa cũng được lợi. Giao thức gỡ lỗi chung nghĩa là script viết cho Chromium thường chạy trực tiếp trên trình duyệt hạ nguồn; giao diện DevTools và cách gọi chế độ headless cũng nhất quán. Rắc rối nằm ở phiên bản: các nhà sản xuất hạ nguồn bám theo thượng nguồn với nhịp độ khác nhau, có bên chậm vài phiên bản, cùng một script chạy được trên bản cũ nhưng báo lỗi trên bản mới, hoặc dùng được trên trình duyệt A mà không được trên B, nên cố định phiên bản quan trọng hơn chạy theo bản mới nhất.

Các tác vụ tự động hóa cần chạy song song lâu dài thường khóa một phiên bản Chromium và dùng kèm môi trường chạy riêng biệt. Phần lớn công cụ tách biệt nhiều tài khoản cũng lấy Chromium làm nền, vì nó mã nguồn mở, khóa được phiên bản, và giao diện tiện ích mở rộng lẫn tự động hóa đầy đủ. PurpleMark thuộc nhóm công cụ này, cấp cho mỗi tài khoản một môi trường trình duyệt độc lập, tách riêng hồ sơ, đường ra mạng và đặc điểm thiết bị.

Câu nói này giải thích được gì và không giải thích được gì

Nói một trình duyệt dựa trên Chromium xác định được rằng engine kết xuất và engine script giống nhau, hành vi trang web gần nhau, giao diện tiện ích mở rộng và giao thức gỡ lỗi nhìn chung dùng chung được, và rủi ro về tương thích web thấp.

Thứ không xác định được là một danh sách dài: giá trị mặc định về quyền riêng tư, có thu thập dữ liệu đo từ xa hay không, khả năng đồng bộ, kênh cập nhật, có thêm chức năng chặn hay tăng tốc nào không, và chậm hơn thượng nguồn bao nhiêu phiên bản. Càng không thể dựa vào đó để phán đoán nó có an toàn hay không, vì thứ Chromium mở ra là mã, không phải cấu hình mặc định.

Coi một trình duyệt dựa trên Chromium là cùng một sản phẩm là cách hiểu sai phổ biến nhất. Thứ thực sự quyết định trải nghiệm hằng ngày là việc mỗi nhà sản xuất thêm gì vào nền tảng này, bỏ đi những gì, và đồng bộ với thượng nguồn bao lâu một lần.