Dillo 브라우저 3.3.0 릴리스

2 weeks ago 17
  • 원격 제어와 자동화가 크게 강화되어, 새 dilloc 프로그램과 기본 활성화된 UNIX 소켓으로 브라우저를 명령줄과 스크립트에서 직접 다룰 수 있게 됨
  • 페이지 우클릭 메뉴의 page_action 옵션으로 임의 명령을 실행할 수 있고, dilloc와 함께 현재 페이지를 다시 불러오거나 교체하는 식의 조작도 가능해짐
  • OAuth 로그인 처리는 사용자 시작 요청 뒤에 이어지는 메인 페이지 리디렉션에서 쿠키를 예외적으로 허용하도록 바뀌어, 서드파티 쿠키 차단을 유지하면서도 인증 흐름이 동작하게 만듦
  • 처음 추가된 FLTK 1.4 실험 지원은 --enable-experimental-fltk로 빌드할 수 있지만, 높은 DPI나 Wayland에서는 렌더링 문제가 남아 있어 모든 사용자 기본값으로 켜면 안 됨
  • 선택적 brotli 지원, about:keys·about:cache·about:dicache, IPv6 기본 활성화, 탭·마우스·클립보드 동작 개선, 여러 보안·빌드 버그 수정까지 포함되어 전반적인 사용성과 안정성이 함께 높아짐

주요 변경점

  • 3.3.0에는 새로운 기능, 설정 옵션, 버그 수정이 포함되며, 처음으로 FLTK 1.4 실험 지원도 추가됨
  • UNIX 소켓 제어와 페이지 메뉴 기반 사용자 동작이 들어가, 브라우저를 스크립트와 명령줄에서 직접 다룰 수 있게 됨
  • OAuth 로그인 수정으로 리디렉션 과정의 쿠키 처리가 조정되어, 추적 방어를 유지하면서도 인증 흐름이 동작하게 만듦

원격 제어와 자동화

  • dilloc 프로그램이 새로 추가되어, 명령줄이나 스크립트에서 Dillo를 제어할 수 있음
    • DILLO_PID 환경 변수의 PID로 대상을 찾고, 값이 없으면 고유한 Dillo 프로세스를 찾음
    • ping, pid, reload, ready, open URL, url, title, status, dump, hdump, load, rawload, quit, wait 같은 제어 명령을 제공함
  • 원격 제어 소켓은 기본 활성화되며, 필요하면 --disable-control-socket으로 끌 수 있음
  • 액션 실행 시 DILLO_PID 변수가 설정되어, dilloc가 현재 Dillo 인스턴스를 바로 제어할 수 있게 됨

페이지 액션

  • 페이지 우클릭 메뉴에서 임의 명령 실행이 가능하도록 page_action 옵션이 추가됨
  • page_action과 dilloc를 함께 쓰면 현재 페이지 내용을 다시 받아오거나 교체하는 식으로 조작할 수 있음
    • 예시로 page_action="Mimic Chrome:curl_chrome136 $url | dilloc load"를 설정하면, curl impersonate로 Chrome처럼 페이지를 다시 가져와 현재 탭의 HTML로 바로 넣을 수 있음
    • 이 방식은 일부 JS walls를 피하는 데 쓸 수 있음
  • URL, HTTP 헤더, 기타 조건에 따라 현재 페이지별 수정 스크립트를 실행하는 Fix page 예시도 포함됨

FLTK 1.4 지원 상태

  • --enable-experimental-fltk 플래그로 FLTK 1.4.0 이상에서 빌드할 수 있는 실험 지원이 추가됨
  • 테스트와 기술 피드백을 위해 넣은 기능이며, 경험 있는 사용자와 테스터를 대상으로 함
  • FLTK 1.4.5 release 사용을 권장함
  • X11 플랫폼의 96 DPI 화면에서는 FLTK 1.4.5와 FLTK 1.3이 비슷한 렌더링 품질을 보임
    • Xft와 Pango 백엔드 모두 해당함
  • 높은 DPI 환경, 특히 96의 배수가 아닌 DPI나 Wayland에서는 여전히 렌더링 문제가 남아 있음
  • Dillo 패키지 관리자는 모든 사용자 기본값으로 FLTK 1.4를 켜지 말아야 함
    • 시각적 글리치와 다른 문제가 드러날 수 있음

OAuth와 쿠키 처리

  • OAuth 인증을 위해, 리디렉션 응답에서 설정되는 쿠키를 허용하도록 동작이 조정됨
  • 기본적으로 Dillo는 사용자가 직접 시작한 요청이 아닌 경우의 서드파티 쿠키를 모두 차단함
    • 이미지 픽셀 기반 추적을 막기 위한 동작임
  • 이번 수정으로 사용자가 시작한 요청 뒤에 이어지는 메인 페이지 리디렉션에서는 쿠키를 예외적으로 허용함
    • 추적 방어를 유지하면서 OAuth 로그인도 가능하게 만듦
  • 예시로 Smolfedi를 통한 Fediverse 로그인이 포함됨

세부 기능 추가와 동작 개선

  • brotli br 콘텐츠 인코딩의 선택적 지원이 추가됨
  • about:keys가 추가되어 현재 키보드 단축키를 볼 수 있음
  • about:cache와 about:dicache 페이지가 추가되어 내부 캐시 정보를 확인할 수 있음
  • 플랫폼이 지원하면 IPv6를 기본 활성화함
  • Alt+ 단축키로 N번째 탭에 초점을 옮길 수 있음
  • Control + left click으로 링크를 새 탭에서 열 수 있음
  • 뒤로 가기와 앞으로 가기를 마우스 버튼으로 수행할 수 있음
  • 뒤로 가기나 앞으로 가기 버튼을 가운데 클릭하면 해당 페이지를 새 탭에서 열 수 있음
  • Ctrl+C가 선택한 텍스트를 클립보드에 복사하도록 바뀌어 Ctrl+V 동작과 기대를 맞춤
  • mark_unloaded_images 옵션이 추가되어 로드되지 않은 이미지에 테두리를 표시할 수 있음
  • 위치 표시줄의 여백이 늘어나, 마우스로 선택하기 쉬워짐
  • search_url에서는 검색 접두사를 부분 일치가 아닌 전체 일치로 처리함
  • Mojeek 검색 엔진이 mj 단축키와 함께 추가됨
  • CSS display:none이 적용된 버튼과 입력창 같은 폼 요소를 숨기도록 바뀜
  • 폼 제출 시에는 캐시된 응답을 피하도록 조정됨
  • Content-Disposition 헤더를 지원해 파일 이름을 설정할 수 있음
  • trace_http 옵션이 추가되어 HTTP 트래픽 디버깅이 가능해짐

수정된 버그와 배포 정보

  • musl 환경에서 vsource dpi의 무한 루프를 일으키던 이스케이프되지 않은 % printf 포맷 문제가 수정됨
  • LibreSSL에서 CurveBall TLS 테스트 중 발생하던 segfault가 수정됨
  • 쿠키 Max-Age 파싱은 로컬 시간대가 아니라 epoch를 사용하도록 바로잡힘
  • NetBSD 빌드 문제가 수정되었고, ctype(3)의 잘못된 sign extension도 피하도록 바뀜
  • HTTP 서버와 OpenSSL 연결 대화상자의 use-after-free 문제가 수정됨
  • 웹사이트 URL은 https://dillo-browser.org/로, git 저장소는 https://git.dillo-browser.org/dillo로 갱신됨

다운로드와 저장소 이전

Read Entire Article