4 điểm bởi GN⁺ 5 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Điều khiển từ xa và tự động hóa được tăng cường đáng kể, cho phép điều khiển trực tiếp trình duyệt từ dòng lệnh và script thông qua chương trình dilloc mới cùng socket UNIX được bật mặc định
  • Tùy chọn page_action trong menu chuột phải của trang có thể chạy lệnh tùy ý, và khi kết hợp với dilloc còn có thể thao tác như tải lại hoặc thay thế trang hiện tại
  • Xử lý đăng nhập OAuth được thay đổi để cho phép ngoại lệ với cookie trong chuyển hướng của trang chính sau yêu cầu do người dùng khởi tạo, giúp luồng xác thực hoạt động trong khi vẫn giữ chặn cookie bên thứ ba
  • Hỗ trợ thử nghiệm FLTK 1.4 được thêm lần đầu, có thể build bằng --enable-experimental-fltk, nhưng vẫn còn vấn đề render ở DPI cao hoặc Wayland nên không nên bật mặc định cho mọi người dùng
  • Bao gồm hỗ trợ brotli tùy chọn, about:keys·about:cache·about:dicache, bật IPv6 mặc định, cải thiện hành vi tab·chuột·clipboard, cùng nhiều bản sửa lỗi bảo mật và build, qua đó nâng cao cả khả năng sử dụng lẫn độ ổn định

Các thay đổi chính

  • 3.3.0 bao gồm tính năng mới, tùy chọn cấu hình, sửa lỗi, và lần đầu tiên bổ sung hỗ trợ thử nghiệm FLTK 1.4
  • Có thêm điều khiển qua socket UNIX và hành động người dùng dựa trên menu trang, cho phép thao tác trực tiếp với trình duyệt từ script và dòng lệnh
  • Sửa đăng nhập OAuth điều chỉnh cách xử lý cookie trong quá trình chuyển hướng để luồng xác thực hoạt động mà vẫn giữ cơ chế chống theo dõi

Điều khiển từ xa và tự động hóa

  • Chương trình dilloc mới được thêm vào, cho phép điều khiển Dillo từ dòng lệnh hoặc script
    • Xác định tiến trình đích bằng PID trong biến môi trường DILLO_PID, và nếu không có giá trị thì tìm tiến trình Dillo duy nhất
    • Cung cấp các lệnh điều khiển như ping, pid, reload, ready, open URL, url, title, status, dump, hdump, load, rawload, quit, wait
  • Socket điều khiển từ xa được bật mặc định, và có thể tắt bằng --disable-control-socket nếu cần
  • Khi thực thi action, biến DILLO_PID sẽ được thiết lập để dilloc có thể điều khiển ngay phiên bản Dillo hiện tại

Hành động trang

  • Tùy chọn page_action được thêm vào để chạy lệnh tùy ý từ menu chuột phải của trang
  • Khi dùng page_action cùng với dilloc, có thể thao tác như tải lại hoặc thay thế nội dung trang hiện tại
    • Ví dụ, nếu đặt page_action="Mimic Chrome:curl_chrome136 $url | dilloc load", có thể dùng curl impersonate để tải lại trang như Chrome rồi đưa trực tiếp HTML vào tab hiện tại
    • Cách này có thể dùng để tránh một số JS walls
  • Cũng có kèm ví dụ Fix page để chạy script chỉnh sửa theo từng trang dựa trên URL, header HTTP và các điều kiện khác
    • Script liên quan fixpage.sh có thể tải từ kho actions

Tình trạng hỗ trợ FLTK 1.4

  • Đã thêm hỗ trợ thử nghiệm cho phép build trên FLTK 1.4.0 trở lên bằng cờ --enable-experimental-fltk
  • Đây là tính năng được đưa vào nhằm phục vụ thử nghiệm và thu thập phản hồi kỹ thuật, hướng tới người dùng có kinh nghiệm và tester
  • Khuyến nghị dùng FLTK 1.4.5 release
  • Trên nền tảng X11 với màn hình 96 DPI, FLTK 1.4.5 cho chất lượng render tương tự FLTK 1.3
    • Áp dụng cho cả backend Xft và Pango
  • Trong môi trường DPI cao, đặc biệt là DPI không phải bội số của 96 hoặc Wayland, vẫn còn các vấn đề render
  • Trình quản lý gói của Dillo không nên bật FLTK 1.4 làm mặc định cho mọi người dùng
    • Có thể xuất hiện lỗi hiển thị và các vấn đề khác

OAuth và xử lý cookie

  • Để phục vụ xác thực OAuth, hành vi đã được điều chỉnh để cho phép cookie được thiết lập trong phản hồi chuyển hướng
  • Theo mặc định, Dillo chặn toàn bộ cookie bên thứ ba nếu đó không phải yêu cầu do người dùng trực tiếp khởi tạo
    • Đây là cơ chế nhằm chặn theo dõi bằng pixel hình ảnh
  • Với bản sửa này, trong chuyển hướng của trang chính nối tiếp sau yêu cầu do người dùng khởi tạo, cookie sẽ được cho phép theo dạng ngoại lệ
    • Nhờ đó đăng nhập OAuth vẫn hoạt động mà vẫn giữ được cơ chế chống theo dõi
  • Ví dụ được nêu là đăng nhập Fediverse qua Smolfedi

Bổ sung tính năng chi tiết và cải thiện hành vi

  • Đã thêm hỗ trợ tùy chọn cho mã hóa nội dung brotli br
  • Có thêm about:keys để xem phím tắt bàn phím hiện tại
  • Có thêm các trang about:cacheabout:dicache để kiểm tra thông tin cache nội bộ
  • IPv6 được bật mặc định nếu nền tảng hỗ trợ
  • Có thể chuyển focus đến tab thứ N bằng phím tắt Alt+
  • Control + left click có thể mở liên kết trong tab mới
  • Có thể thực hiện quay lại và tiến tới bằng nút chuột
  • Nhấp chuột giữa vào nút quay lại hoặc tiến tới sẽ mở trang đó trong tab mới
  • Ctrl+C nay sao chép văn bản đã chọn vào clipboard để nhất quán với kỳ vọng của Ctrl+V
  • Có thêm tùy chọn mark_unloaded_images để hiển thị viền quanh ảnh chưa tải
  • Phần đệm của thanh địa chỉ được tăng lên để dễ chọn bằng chuột hơn
  • Trong search_url, tiền tố tìm kiếm được xử lý bằng khớp hoàn toàn thay vì khớp một phần
  • Công cụ tìm kiếm Mojeek được thêm cùng phím tắt mj
  • Các phần tử form như nút và ô nhập có CSS display:none nay sẽ được ẩn
  • Khi gửi form, hành vi được điều chỉnh để tránh dùng phản hồi đã cache
  • Hỗ trợ header Content-Disposition để có thể đặt tên tệp
  • Có thêm tùy chọn trace_http để debug lưu lượng HTTP

Lỗi đã sửa và thông tin phát hành

  • Đã sửa vấn đề định dạng printf với ký tự % không được escape gây ra vòng lặp vô hạn trong vsource dpi trên môi trường musl
  • Đã sửa lỗi segfault xảy ra trong quá trình kiểm thử TLS CurveBall trên LibreSSL
  • Việc phân tích cú pháp Max-Age của cookie được sửa để dùng epoch thay vì múi giờ cục bộ
  • Đã sửa lỗi build trên NetBSD và cũng thay đổi để tránh lỗi sign extension sai của ctype(3)
  • Đã sửa lỗi use-after-free trong hộp thoại kết nối của máy chủ HTTP và OpenSSL
  • URL website được cập nhật thành https://dillo-browser.org/, còn kho git là https://git.dillo-browser.org/dillo

Tải xuống và chuyển kho lưu trữ

1 bình luận

 
Ý kiến trên Hacker News
  • Tôi dùng Dillo khá thường xuyên. Xin chúc mừng
    Với việc các dự luật xác minh độ tuổi liên tục xuất hiện và tùy Firefox sẽ phản ứng ra sao, có vẻ Dillo có thể trở thành trình duyệt mặc định trên Linux và BSD trên thực tế
    Nếu các luật này thật sự được thực thi và Firefox còn tích hợp cả logic xác minh tuổi, tôi sẽ chuyển sang Dillo 100%

    • Điều đó hoàn toàn có lý, nhưng các dự luật ước tính độ tuổi cần được nhìn như một xu hướng lớn hơn nhiều
      Việc nhiều quốc gia đang đầu hàng chuyện này quá nhanh thật sự khá đáng sợ
      Có thể bây giờ vẫn có người không tin, nhưng theo tôi vài năm nữa duyệt web ẩn danh có thể sẽ trở thành chuyện của quá khứ
      Cũng cần nhìn cả các đợt tấn công nhắm vào VPN. Đây không giống những sự cố riêng lẻ tình cờ, mà giống một chuyển động đồng bộ theo cùng một hướng
      Cần phải làm rõ hơn dòng tiền đang chảy đi đâu, và tôi phát ngán với cảnh mọi thứ bị giới vận động hành lang thao túng
  • Đáng tiếc là ngay cả Google cũng bắt đầu yêu cầu JS, và đây là một đòn giáng mạnh vào các trình duyệt nhỏ và web mở

    • Đúng vậy, trên các trình duyệt kiểu này https://html.duckduckgo.com hoạt động khá ổn :)
    • Chỉ mục của Google vẫn còn có thể truy cập không cần JS thông qua các công cụ tìm kiếm proxy. Ví dụ, Startpage là một trong số đó
      Một danh sách chi tiết hơn về công cụ tìm kiếm được bài của Seirdy tổng hợp khá tốt: https://seirdy.one/posts/2021/03/10/search-engines-with-own-...
    • Tôi còn thấy đây gần như là một tính năng. Nếu website không hoạt động với HTML cơ bản, thì phần lớn khả năng nó chỉ là phí thời gian
    • Giờ tôi có cảm giác Google đang chi phối web
      Nói chính xác thì không hoàn toàn đúng, nhưng Google hiện diện ở rất nhiều mảng quan trọng của web, và Chrome chỉ là ví dụ dễ thấy nhất trong số đó
    • Nhưng thật sự có cần đến ES6 không?
      JavaScript thời kỳ đầu đơn giản hơn rất nhiều, và cũng không nhất thiết phải có JIT. Cá nhân tôi vẫn thấy phương án không có JIT tốt hơn
  • Thật sự rất cảm ơn các nhà phát triển. Tôi rất thích những dự án retro như thế này
    Tôi dùng Dillo hằng ngày, và với tôi chủ yếu là cho mục đích nội bộ
    Nhờ kiến trúc plugin, nó còn có thể render các giao thức như gemini hay gopher, nên tôi cũng dùng để xem các trang gemini
    Nó thật sự cực kỳ nhẹ

  • Các client Mastodon cũng không hoạt động tốt, nhưng ít nhất vẫn có một lựa chọn thay thế: https://codeberg.org/adele/smolfedi

  • Với tôi, khi dùng Dillo ở đây trên HN thì cứ liên tục nhận 429, còn trên trình duyệt đầy đủ tính năng thông thường thì không xảy ra
    Tôi không rõ có phải vì JS hay không

  • Tôi đã nói điều này nhiều lần trong các bài khác về Dillo rồi, nhưng nhờ Dillo mà tôi lần đầu tiên có thể xem web trên một máy 486 PC
    Đó là một cỗ máy cài Damn Small Linux, và nếu không có Dillo vào thời điểm đó thì có lẽ việc truy cập web đã rất khó khăn

  • dilloc đã được khởi động từ các commit git cũ trước cả bản phát hành 3.3.0, và thật sự rất ấn tượng
    Bạn cũng có thể dễ dàng tạo các mục menu chuyển hướng gọi script kiểu plumber hay xdg-open
    Cách làm này giống Libredirect của Firefox/Chromium: thay thế JS URL bằng non-JS URL

  • Tôi đang tự hỏi liệu có nơi nào cung cấp binary dựng sẵn cho bản port Windows mới nhất của Dillo không

  • Hơi tiếc là Dillo là C++
    Vì tôi từng muốn thử build nó bằng các trình biên dịch C nhỏ và đơn giản như cproc/qbe hoặc tinycc
    Dù vậy, tôi có cảm giác điều này cũng cho thấy AI lập trình có thể hỗ trợ khá tốt cho việc port hàng loạt từ C++ sang C thuần

    • Khoảng 6 tháng trước tôi đã tự thử với mã C++ của mình bằng các công cụ từng được xem là SOTA vào thời điểm đó, nhưng kết quả gây thất vọng
      Theo tôi thì chúng vẫn chưa tới được mức đó