Trình duyệt Edge chuẩn bị đổi sang dùng nền tảng Chromium, trong đó sự thay đổi lớn nhất là về engine dựng web. Đây là bước thay đổi lớn kể từ khi Edge ra đời, và cũng cho thấy tinh thần mới của Microsoft. Và không chỉ có thế, việc chuyển sang Chromium còn giúp Edge tận dụng được nhiều tính năng mà Google đã phát triển sẵn cộng với kho add-on phong phú.
1. Đầu tiên, bạn cần biết Rendering Enginer là gì
Rendering Engine (RE), hay còn gọi là Layout Engine, là một trong những thành phần quan trọng nhất của trình duyệt. Nó là thứ bố cục trang web theo đúng ý của người làm web, tạo ra màu sắc, hình ảnh, chữ nghĩa cho bạn xem. Khối này nằm trên, khối kia nằm dưới, mục này nằm đè lên một phần của mục kia... đều do rendering engine quyết định. Nói một cách kĩ thuật hơn, nó là thứ biến các dòng lệnh HTML / CSS trở thành thứ bạn thấy được, click được trên màn hình của trình duyệt, chứ không thì thứ bạn thấy chỉ là một đống chữ loằng ngoằng trên màn hình.
Từ đống code bên dưới, rendering engine biến nó thành giao diện website đẹp đẽ cho bạn xem
Ngoài rendering enginer, trình duyệt còn có JavaScript engine nữa, nó là bộ máy thực thi các dòng lệnh JavaScript, ví dụ khi bạn click nút đăng comment trên Tinh tế hay khi bạn nhấn nút Tải thêm ngoài trang chủ chẳng hạn. Nó cũng là những dòng lệnh, và để đổi lệnh đó thành hành động thì cần JavaScript engine. Nhưng thôi, trong bài này chúng ta sẽ không nói sâu về nó.
1. Đầu tiên, bạn cần biết Rendering Enginer là gì
Rendering Engine (RE), hay còn gọi là Layout Engine, là một trong những thành phần quan trọng nhất của trình duyệt. Nó là thứ bố cục trang web theo đúng ý của người làm web, tạo ra màu sắc, hình ảnh, chữ nghĩa cho bạn xem. Khối này nằm trên, khối kia nằm dưới, mục này nằm đè lên một phần của mục kia... đều do rendering engine quyết định. Nói một cách kĩ thuật hơn, nó là thứ biến các dòng lệnh HTML / CSS trở thành thứ bạn thấy được, click được trên màn hình của trình duyệt, chứ không thì thứ bạn thấy chỉ là một đống chữ loằng ngoằng trên màn hình.
Từ đống code bên dưới, rendering engine biến nó thành giao diện website đẹp đẽ cho bạn xem
Ngoài rendering enginer, trình duyệt còn có JavaScript engine nữa, nó là bộ máy thực thi các dòng lệnh JavaScript, ví dụ khi bạn click nút đăng comment trên Tinh tế hay khi bạn nhấn nút Tải thêm ngoài trang chủ chẳng hạn. Nó cũng là những dòng lệnh, và để đổi lệnh đó thành hành động thì cần JavaScript engine. Nhưng thôi, trong bài này chúng ta sẽ không nói sâu về nó.
Giao diện của trình duyệt cũng là một thành phần quan trọng, rồi chúng ta còn có add on, công cụ quản lý download, hệ thống settings... và nhiều thứ khác.
Quay trở lại với RE, hiện nay trên thế giới đang có những RE lớn như sau:
- WebKit: do một hiệp hội nhiều công ty cùng góp sức phát triển trong đó có cả Google, Apple. WebKit đang được dùng cho Safari của Apple và Chrome ngày xưa (cũng như dự án nền Chromium)
- Blink: một bản fork (tách ra) từ thành phần WebCore của WebKit. Nó đang được dùng cho Chrome kể từ bản 28 trở đi, Opera 15 trở đi, Vivaldi, Amazon Silk và những trình duyệt dùng nền tảng Chromium
- Trident: RE này được dùng trong Internet Explorer, nó có khá nhiều vấn đề về việc tương thích và hỗ trợ các chuẩn web chung
- EdgeHTML: dùng cho Microsoft Edge, sắp tới sẽ bỏ dần dần
- Gecko: Firefox đang dùng cái này, nó hỗ trợ các chuẩn web mới khá nhanh, chuẩn và tính tương thích cao ngang với WebKit
- Presto: ngày xưa được dùng bởi Opera, giờ thì hết rồi
Tương tự như Android vậy, Android AOSP là bản mã nguồn mở, các hãng có thể lấy về thêm thắt, chỉnh sửa tùy ý muốn. Nhưng bản Android đang chạy trên các điện thoại Pixel thì lại là một bản Android được Google tùy biến riêng, không hãng nào copy được trừ khi Google muốn chia sẻ với họ.
Nếu thích bạn có thể tải Chromium về sử dụng thay cho Chrome cũng được, link ở đây. Lưu ý là bản này có thể có lỗi nhé.
2. Vì sao Microsoft muốn bỏ EdgeHTML?
EdgeHTML là rendering enginer được Microsoft phát triển mới và nó bắt đầu xuất hiện vào năm 2015, cũng là thời điểm Windows 10 bắt đầu phát hành. EdgeHTML được làm theo kiểu tương thích với WebKit khá nhiều, nó là một sự cải tiến rất lớn so với Trident của Internet Explorer và nó mở ra nhiều hướng hỗ trợ nhanh, phù hợp hơn cho những chuẩn web hiện đại.
Tuy nhiên, EdgeHTML vẫn chưa hỗ trợ các tính năng mới của Hiệp hội WWW (W3C) nhanh như cách mà Chrome, Firefox, Opera và những đối thủ khác tích hợp các tính năng này. Một thứ đã chạy với trình duyệt Safari, Chrome, Opera có thể mang lên EdgeHTML không chạy. Nói đâu xa, trang chủ Tinh tế khi ra mắt hồi tháng 4 cũng bị lỗi với Edge trong việc hiển thị hình ảnh vector định dạng SVG. Trên mọi trình duyệt khác đều bình thường, riêng Edge lại bị lỗi icon phóng to tổ bố. Phải đi đường vòng mới khắc phục được.
Quảng cáo
Từ góc nhìn của các lập trình viên, việc hỗ trợ cho EdgeHTML trở nên khó khăn, phức tạp hơn, họ phải test nhiều hơn và sửa lỗi nhiều hơn. Chẳng ai lại muốn điều đó. Kể cả Microsoft cũng muốn web của mọi người phải hiển thị ngon lành trên Edge, mà khi dính lỗi này thì khó để mọi người cảm thông lắm và trải nghiệm của khách hàng cũng không còn tốt. Từ góc nhìn của người dùng thì đương nhiên là không hài lòng rồi, thà họ dùng Chrome cho tiện và tương thích cao.
Bên cạnh đó, chúng ta cũng không còn thấy nhiều lý do Microsoft nên tiếp tục với EdgeHTML. Để giữ cho thế giới có "kiềng ba chân" và không bị Google thao túng như những gì CEO Mozilla đã nói? Mình không nghĩ thế. Microsoft cũng là doanh nghiệp, và khi làm gì họ cũng phải cân nhắc về lợi nhuận, chi phí và lợi ích lâu dài. EdgeHTML không tạo được lợi thế nào khác biệt trong chuyện này, nhất là khi hãng muốn mọi web đều phải render nhanh, tốt như nhau. Vậy thì khác gì WebKit hay Chromium nói chung đâu? Thôi thì gom về Chromium luôn cho đỡ cực.
2.1 Chromium không chỉ là rendering engine
Và Chromium không chỉ có rendering engine, nó là một giải pháp trình duyệt gần hoàn chỉnh, trong đó có cả codec video, nhạc, giao tiếp với phần cứng, các chuẩn đồ họa, tính toán, khả năng quản lý add on... (ví dụ: tính năng mute nhạc theo tab cũng là của Chromium). Thay vì phải làm mới mọi thứ từ đâu, Microsoft có thể tận dụng những thứ có sẵn và nâng cấp nó cho xịn hơn, vừa tiết kiệm nguồn lực vừa có đồ chơi ngon, vừa xài lại được kho extension khổng lồ của Chrome.
Mozilla có lo ngại rằng việc Microsoft chuyển sang Chromium sẽ làm gia tăng sự kiểm soát của Google với thế giới Internet, nhưng mình không cho là thế. Mã nguồn của Chromium là mã nguồn mở, mọi thay đổi đều được giám sát, nhìn thấy rõ ràng và không có một đoạn code nào có thể ẩn khỏi mắt của cộng đồng. Một thay đổi nhỏ theo hướng làm lợi cho việc quảng cáo của Google cũng có thể dễ dàng bị phát hiện và tố cao ngay.
3. Edge vẫn sẽ là Edge
Quảng cáo
Về cơ bản, nếu bạn đang dùng Edge thì sẽ không thấy nó khác biệt gì mấy. Giao diện của trình duyệt này vẫn sẽ giữ nguyên như hiện tại, ít nhất là cho đến khi Microsoft có thông báo mới vì đây là thành phần độc lập với rendering enginer. Rendering Engine của Edge khi đã đổi sang Blink thì bạn sẽ thấy tính tương thích web cao hơn, ít bị lỗi hơn khi hiển thị trang web. Và những tính năng của Chromium sẽ giúp Edge có nhiều thứ vui vẻ, hay ho hơn.
Nếu bạn thích những tính năng sync giữa Edge trên nhiều thiết bị, nếu bạn thích khả năng load nhanh của Edge hay mức độ tiết kiệm pin cao thì mấy thứ này vẫn còn nguyên tại chỗ. Dự án tối ưu Edge cho chip ARM cũng sẽ được tiếp tục thực hiện, phù hợp với lộ trình ra mắt chip Snapdragon 8cx cho các máy Windows on ARM.
Microsoft cho biết họ sẽ đóng góp nhiều hơn vào Chromium, và mình tin điều này sẽ diễn ra. Microsoft giờ không còn là Microsoft của 5 năm trước, họ đang có nhiều dự án nguồn mở lắm và họ thậm chí còn tiếp cận tích cực với Linux nữa là chuyện khác. Những đóng góp của Microsoft cho Chromium có thể giúp hệ thống này tiến xa nhanh, trong thời gian ngắn hơn, hiệu suất hoạt động cao hơn.
Với sự bổ sung của Microsoft và những thứ họ sẽ tùy biến riêng cho Edge, chúng ta có thể kỳ vọng nó sẽ chạy ổn định hơn, nhanh hơn vì được xây dựng dựa trên một thứ đã có từ lâu đời và được cả cộng đồng cùng phát triển. Và hơn thế nữa, Microsoft cũng hứa là sẽ ra mắt bản update cho Edge thường xuyên hơn.