Firefox, WebUSB 확장 기능으로 USB 장치 연결 지원!
Firefox에서 WebUSB 기능을 사용할 수 있도록 해주는 확장 기능 출시
확장 기능 설치와 별도로 네이티브 스텁(Native Stub) 프로그램 설치 필요
Chrome과의 호환성을 목표로 하며, Web Worker 미지원
macOS, Windows, Linux 등 다양한 플랫폼 지원, Rust 기반으로 개발
네이티브 메시징(Native Messaging)을 활용한 WebUSB 구현
Firefox WebUSB 확장 기능은 네이티브 메시징(Native Messaging)을 사용하여 웹 환경에서 USB 장치에 접근할 수 있도록 지원한다. 이는 브라우저와 별도로 설치되는 네이티브 스텁(Native Stub) 프로그램을 통해 구현되며, Chrome의 WebUSB 구현과 호환성을 목표로 한다. 기술적으로 보면, 이 아키텍처는 웹 페이지에서 직접 USB 장치에 접근하는 것을 제한하고, 보안 및 플랫폼 간 호환성을 확보하기 위한 전략으로 보인다.
플랫폼별 설치 및 설정 과정
확장 기능 설치를 위해서는 .xpi 파일을 Firefox에 직접 설치해야 하며, 네이티브 스텁(Native Stub)은 운영체제에 따라 별도의 설치 과정을 거쳐야 한다. macOS, Linux, Windows를 위한 사전 빌드된 바이너리(Prebuilt Binaries)를 제공하며, 소스 코드로부터 직접 빌드하는 방법도 안내한다. 특히, 네이티브 매니페스트(Native Manifest) 설정은 브라우저가 네이티브 스텁을 찾도록 하는 핵심 단계이다.
Rust 기반 개발 환경 구축
본 확장 기능은 Rust로 개발되었으며, 다양한 플랫폼을 위한 크로스 컴파일(Cross-compiling)을 지원한다. 개발 환경 설정 시, macOS에서는 별도의 설정 없이 빌드가 가능하며, Linux에서는 musl libc를 사용하여 배포한다. Windows 환경에서는 mingw-w64를 사용하며, 필요한 라이브러리 경로를 설정해야 한다. 이러한 개발 환경 구축은 다양한 운영체제(Operating System) 및 하드웨어 아키텍처(Hardware Architecture)를 지원하기 위한 노력의 일환이다.
제한 사항 및 특이 설정
본 확장 기능은 Android를 지원하지 않으며, Web Worker에서도 사용할 수 없다. 또한, 특이한 환경(Unusual Configurations), 예를 들어 여러 컴퓨터에서 공유되는 *nix 홈 디렉토리나 Windows 로밍 프로파일에서는 설치에 문제가 발생할 수 있다. 이는 네이티브 매니페스트 메커니즘의 설계상 한계 때문이다. 이러한 제한 사항은 데이터 격리 아키텍처(Data Isolation Architecture)를 강화하기 위한 선택으로 보인다.