저자 : Alan D Moore (http://www.alandmoore.com, 이메일 me_at_alandmoore_dot_com)
기고자 :
Admbrowser는 특히 웹 키오스크에서 사용하기위한 브라우저입니다. PYQT5 및 QTWebengine (Chromium/Blink)을 기반으로하며 잠금을 매우 단순하고 고통스럽지 않도록 설계되었습니다.
Firefox 및 Chrome과 같은 기능 목록이있는 브라우저가 너무 많은 노력을 기울여서 올바르게 잠그기에는 너무 많은 노력을 기울 였다는 것이 분명해 졌을 때 원래 라이브러리 카탈로그 터미널에서 사용하기 위해 고안되었습니다. 또한 느린 WAN을 가로 질러 SSH의 터미널에서 손으로 편집 할 수있는 간단한 텍스트 파일을 사용하여 쉽게 구성 할 수 있도록 설계되었으므로 데이터베이스, XML 또는 미친 바이너리가 없습니다.
Admbrowser는 WCGBrowser의 포크이며 이러한 주요 차이점이 있습니다.
Qtwebengine이 Qtwebkit과 다르게 수행하기 때문에 WCGBrowser에 있던 많은 기능이 단순히 깨지거나 이용할 수 없습니다.
모든 플랫폼에서 작동해야하지만 Arch Linux, Debian 및 Ubuntu에서만 테스트되었습니다.
포함 된 admbrowser.yaml 파일에는 문서화 된 예제 구성이 표시됩니다. 사용하려면 /etc/admbrowser.yaml, ~/.admbrowser.yaml로 복사하거나 -c (-config-file) 스위치로 지정하십시오. AdmBrowser.py 실행 파일을 만들거나 Python을 사용하여 시작할 수 있습니다.
Python admbrowser.py
최소한 구성 파일 또는 -L 스위치를 사용하여 start_url을 지정해야합니다. 그렇지 않으면 브라우저가 많이 사용되지 않습니다. 고급 구성은 구성 파일에서 가장 잘 수행 될 수 있지만 이러한 스위치를 사용하여 명령 줄에서 많은 기본 기능을 활성화 또는 비활성화 할 수 있습니다.
| 스위치 | 설명 |
|---|---|
| -debug_log | 지정된 파일로 디버깅 출력을 보냅니다 |
| --크기 | 초기 창 크기를 "<width> x <높이>"(예 : "800x600"), "max"또는 전체 화면의 경우 "Full"으로 설정하십시오. |
| --proxy_server | 프록시 서버 호스트와 포트를 <host> : <port> 양식으로 설정하십시오. |
| -c,--config-file | 사용할 구성 파일을 지정하십시오 |
| -d, - -데부그 | STDOUT에 디버깅 출력을 제공하십시오 |
| -e, -hallow_external | 브라우저가 MIME 유형을 통해 외부 프로그램에서 콘텐츠를 열도록 허용하십시오. |
| -g, -Xallow_plugins | Flash, Java 등과 같은 플러그인을 사용할 수 있습니다. |
| -h, -help | 명령 줄 구문에 빠른 도움을 표시하십시오 |
| -i, -ICON-THEME | 사용할 아이콘 테마. 이 테마를 직접 설치해야합니다 |
| -L, --url | 브라우저의 "시작 위치". 이것은로드되는 초기 URL이며 재설정시 반환되는 위치입니다. |
| -n,-no-navigation | 내비게이션 패널 (뒤, 앞으로, 집, 바로 가기 등)을 끄십시오. |
| -p, -팝업 | 새 창에서 열리는 링크가 클릭되거나 JavaScript가 창을 열려고 시도하면 새 창을 생성합니다. |
| -t, -시간 초과 | 비활성 모니터의 시간 초과. 이 몇 초 동안 비 활동이 끝나면 브라우저를 재설정하십시오 |
| -u, --user | 사이트가 인증을 요청할 때 전송할 기본 사용자 이름을 설정합니다. |
| -w, -password | 사이트가 인증을 요청할 때 전송하도록 기본 비밀번호를 설정합니다. |
| -z, -zoom | 컨텐츠의 기본 줌 계수. 0은 이것을 무시합니다. 1은 기본값이고 2는 이중 크기, 0.5는 반 크기 등입니다. |
Admbrowser는 또한 내장 QT 명령 줄 인수를 수용하여 일부 낮은 수준의 재정의를 제공합니다. 이 스위치의 문서화는 https://doc.qt.io/qt-5/qapplication.html#qapplication에서 찾을 수 있습니다.
샘플 구성 파일은 완전히 주석이되며 읽기 만하면 쉽게 구성해야합니다. 처음부터 시작하려는 경우 애플리케이션에 사용할 수있는 현재 구성 옵션이 있습니다.
| 옵션 이름 | 기본값 | 설명 |
|---|---|---|
| allow_external_content | 거짓 | 비 HTML 컨텐츠 허용 여부, 예를 들어 PDF 파일. 이것이 사실이라면 MIME 유형의 콘텐츠 핸들러를 지정해야합니다. 또는 404 오류, "네트워크 오류"또는 빈 페이지가 사용자에게 표시 될 수 있습니다. |
| allow_plugins | 거짓 | 사실이라면 Flash, Java 등과 같은 플러그인을 사용할 수 있습니다. |
| allow_popups | 거짓 | JavaScript Window.open () 호출 또는 "_blank"대상과 링크와 같은 새 브라우저 창을 열어야하는 탐색을 허용하는지 여부. False가 있으면 내비게이션이 무시됩니다. 사실이라면 예상대로 새 창이 생성됩니다. |
| force_js_confirm | "묻다" | "수락"또는 "거부"로 설정되면 지정된 답변으로 javaScript가 you-you-you-want-to-exit 대화 상자를 무시합니다. "ask"(기본값)가 매번 사용자에게 묻습니다. |
| suppress_alerts | 거짓 | 사실 인 경우 JavaScript 팝업 경보가 나타나지 않거나 False가 표시되는 경우 표시됩니다. |
| allow_printing | 거짓 | 컨텍스트 메뉴 또는 도구 모음에서 웹 페이지의 인쇄를 활성화하십시오. |
| print_settings | (비어 있는) | 기본 프린터 설정을 지정하고 아래를 참조하십시오. |
| default_password | (비어 있는) | 페이지가 인증을 요청할 때 보낼 기본 비밀번호 |
| default_user | (비어 있는) | 페이지가 인증을 요청할 때 보낼 기본 사용자 이름 |
| icon_theme | (QT5 기본값) | 탐색 아이콘에 사용할 아이콘 테마 |
| 항해 | 진실 | 상단에 내비게이션 막대를 표시합니다 (뒤/전방/Reload/Bookmarks/Quit) |
| navigation_layout | (아래 참조) | 탐색 표시 줄의 레이아웃을 설정합니다. 아래의 자세한 설명을 참조하십시오. |
| Network_down_html | (비어 있는) | 현재 _broken start_url 페이지를로드 할 수 없을 때 표시되는 HTML이 포함 된 파일의 전체 경로는 아마도 어떤 종류의 네트워크 오류를 나타낼 수 있습니다. |
| page_unavailable_html | (비어 있는) | 현재 html이 포함 된 파일에 대한 전체 경로는 보안 제한에 의해 액세스 할 수 없거나 차단되지 않기 때문에 페이지를로드 할 수 없을 때 표시됩니다. |
| privacy_mode | 진실 | 개인 브라우징 모드를 활성화 또는 비활성화합니다 |
| user_agent | (QT5 기본값) | 기본 사용자 에이전트 문자열을 무시합니다. |
| proxy_server | (비어 있는) | HTTP 프록시의 프록시 서버 문자열을 설정합니다. 양식 호스트 : 포트 또는 8080의 기본 포트를 사용하려는 경우 호스트를 가져옵니다. |
| quit_button_mode | 다시 놓기 | timeout_mode와 마찬가지로, 이것은 quit 버튼을 누르면 취한 조치입니다 (동일한 옵션). |
| quit_button_text | "나는 & 끝났다" | 종료/재설정 버튼에 표시 할 텍스트. 가속기 표시기 (&)를 포함 할 수 있습니다. |
| Screensaver_URL | 정보 : 공백 | 유휴시 방문 할 URL. timeout_mode가 "screensaver"이고 "timeout"이 0이 아닌 경우에만 문제가 있습니다. |
| ssl_mode | 엄격한 | 브라우저가 SSL 인증서 오류를 처리하는 방법을 정의합니다. "엄격한"은 오류를 제공하고 문제가있는 URL에 대한 액세스를 방지합니다. "무시"는 조용히 오류를 무시하고 액세스를 허용합니다. |
| start_url | 정보 : 공백 | 시작 URL |
| 스타일 시트 | (비어 있는) | 응용 프로그램 창 스타일링에 사용할 QSS 형식 스타일 시트의 파일 이름. 예제 파일을 참조하십시오. |
| 시간 초과 | 0 | 브라우저가 닫히거나 자체적으로 재설정하기 전에 비 활동의 초의 초. 0의 값은 기능을 비활성화합니다. |
| TimeOut_Mode | 다시 놓기 | 비활성 시간 초과에서 작업이 수행되었습니다. 값은 "재설정"(시작 URL 및 명확한 히스토리로 돌아 가기 위해), "Close"(프로그램을 닫기 위해) 또는 "Screensaver"(Screensaver_URL을 표시하기 위해) 또는 "Screensaver"일 수 있습니다. |
| 화이트리스트 | (비어 있는) | 액세스 할 수있는 웹 도메인 또는 호스트 목록 (아래 참조). |
| Window_icon | (비어 있는) | 창 관리자가 표시 할 아이콘 파일의 전체 경로. |
| window_size | "Max" | 이 크기로 창을 기본값으로 만듭니다. <width> x <높이> (예 : "800x600"), "max"는 최대화 될 수 있습니다. |
| window_title | "브라우저" | Window Manager가 표시 할 맞춤형 창 제목. |
| Zoom_factor | 1.0 | 페이지에 적용되는 줌의 양. .5는 절반 크기, 2.0은 이중 크기 등입니다. |
북마크는이 형식으로 "북마크"라는 Yaml 목록에서 작성됩니다.
북마크 :
1 :
이름 : "북마마 이름"
URL : "http : //bookmark.url/"
설명 : "툴팁에 대한 책갈피에 대한 간단한 설명"
2 :
이름 : "다른 북마크 이름":
URL : "http://example.com/some_bookmark"
설명 : "이 책갈피에 대한 간단한 설명"
북마크 이름에는 가속기 키를 지정하기위한 암페어 및 앰프가 포함될 수 있습니다. SO와 같은 북마크 항목을 지정할 수도 있습니다.
북마크 :
"북마마 이름":
URL : "http : //bookmark.url/"
설명 : "툴팁에 대한 책갈피에 대한 간단한 설명"
이것은 더 컴팩트하지만 단점은 북마크의 순서를 제어 할 수 없다는 것입니다 (키에 의해 주문되므로 이름별로 알파벳순입니다). 이 모드는 실제로 거꾸로 호환되지만 알파벳순으로 원하는 책갈피가 많고 타이핑을 저장하려는 경우, 이것이가는 방법 일 수 있습니다.
외부 컨텐츠를 시작할 수있는 경우 "Content_Handlers"배열을 사용하면 외부 컨텐츠가 MIME 유형별로 열리는 프로그램을 지정할 수 있습니다. 구문은 다음과 같습니다.
content_handlers : "Application/PDF": "XPDF" "Application/vnd.oasis.opendocument.text": "libreoffice"
AdmBrowser는 파일을 임시 디렉토리로 다운로드하여 두 번째 열에 지정하는 명령에 인수로 전달합니다. 어떤 경우에는 인수를 제대로 다루지 않는 일부 유형의 파일이나 프로그램을 처리하기 위해 일종의 래퍼 스크립트를 작성하고 싶을 수도 있습니다.
"Navigation_Layout"매개 변수는 표시되는 경우 네비게이션 바에 배치 할 항목 목록입니다. 다음 중에서 선택할 수 있습니다.
이 목록은 유효한 YAML 목록 형식으로 지정할 수 있지만 사각형 버팀대로 둘러싸고 쉼표로 분리하는 것이 좋습니다. "분리기"와 "스페이서"는 원하는만큼 여러 번 사용할 수 있으며, 다른 하나는 각각 한 번만 사용해야합니다.
키오스크 페이지의 모든 링크를 완전히 제어 할 수없고 사용자가 이상한 사이트로 이동하는 것을 방지하려면 화이트리스트 기능이 편의성으로 추가됩니다. 방화벽이나 컨텐츠 필터가 아니며 정확히 어떻게 기대하는지 정확히 행동하지 않을 수 있습니다. 따라서 사용할 계획이라면 그것이하는 일과하지 않는 일에 대해 조금 읽으십시오.
화이트리스트 기능을 사용하지 않으려면 주석을 주거나 목록을 비워 두거나 "False"의 값을 제공하십시오.
화이트리스트에 다음과 같은 도메인 또는 호스트 목록을 제공합니다.
Whitelist : [ "somehost.example.com", "some-local-host", "mydomain.org"]]]
사용자가 링크를 클릭하거나 그렇지 않으면 페이지로 이동하려고 할 때마다 호스트 이름은 요청 된 URL에서 추출되고 화이트리스트와 일치합니다. 일치가 있으면 페이지가 표시됩니다. 그렇지 않은 경우 오류 텍스트가 표시됩니다.
일부는 자동입니다.
START_URL 및 북마크 URL을 서점에 화이트리스트로 만들고 싶다면 구성 파일 에서이 작업을 수행 할 수 있습니다.
화이트리스트 : 사실
자동 화이트리스트에 의존 할 때 이러한 URL의 전체 호스트 문자열이 화이트리스트에 있음을 이해하는 것이 중요합니다. 예를 들어, start_url이 "http://example.com"인 경우, "example.com"은 화이트리스트에 추가됩니다 (따라서 foo.example.com, bar.example.com 등과 같은 example.com의 모든 하위 도메인). "http://www.example.com"을 start_url로 지정하면 "www.example.com"이 화이트리스트에 추가됩니다. 따라서 "foo.example.com"은 화이트리스트에 없을 것입니다.
또한 화이트리스트에 다른 호스트로 전달하는 URL을 사용하면 화이트리스트에 두 호스트를 지정해야합니다.
Screensaver 모드는 브라우저가 유휴 상태 인 동안 주어진 URL 만 표시 할 수있는 특수 타임 아웃 모드입니다. 다음과 같은 구성을 고려하십시오.
start_url : 'http://example.com/kiosk' 타임 아웃 : 1800 timeout_mode : 'Screensaver' Screensaver_URL : 'http://example.com/slides'
이 구성은 다음을 수행합니다.
Screensaver_URL은 예를 들어 이미지 회전기, 광고가있는 페이지, 환영 메시지 등이 될 수 있습니다. 실제로 중요하지는 않지만 사용자는 마우스 나 키보드를 터치하자마자 START_URL이로드되므로 실제로 스크린 세이버 페이지와 상호 작용할 수는 없습니다.
AdmBrowser를 사용하면 HTTP 프록시의 호스트 (이름 또는 IP) 및 포트 번호를 설정할 수 있습니다. HTTPS, FTP, 양말 또는 인증 프록시는 현재 지원되지 않습니다. 프록시 설정을 세 가지 방법 중 하나로 설정할 수 있습니다.
프록시 서버를 설정하려면 다음과 같이 형식 호스트 : 포트를 사용하십시오.
proxyserver.mynetwork.local : 3128 로컬 호스트 : 8080 192.168.1.1:8880
포트를 포함하지 않고 IP 주소 또는 호스트 이름을 넣는 것을 무시하는 경우 포트 8080은 기본적으로 사용됩니다.
이 기능 은 일부 OS에서 작동하지 않을 수 있습니다. 현재 HTTP_PROXY 환경 변수를 설정하는 데 의존하고 있습니다 (구성에 사용하는 방법에 관계없이)은 모든 시스템에서 존중되지 않을 수 있습니다. 그것은 확실히 Linux와 아마도 유닉스와 같은 시스템에서 작동합니다.
AdmBrowser는 기본 프린터 설정 구성을 지원하며 대화 상자를 표시하지 않고 인쇄 할 수 있습니다. 옵션은 print_settings 변수로 설정됩니다. 예를 들어:
print_settings :
침묵 : 사실
여백 : [5, 5, 3, 3]
오리엔테이션 : "풍경"
다음 옵션이 지원됩니다.
| 옵션 이름 | 기본값 | 설명 |
|---|---|---|
| 조용한 | 거짓 | 사실 인 경우 Admbrowser는 인쇄 대화 상자를 표시하지 않고 즉시 인쇄합니다. |
| 정위 | "초상화" | 초상화 또는 조경 방향의 인쇄를 지정합니다. |
| size_unit | "밀리미터" | paper_size 및 마진 변수에서 사용하는 측정 단위를 지정합니다. "밀리미터", "포인트", "인치", "pica", "didot", "cicero"또는 "devicepixel"일 수 있습니다. |
| 여백 | (프린터 기본값) | 프린터 마진을 양식의 목록으로 지정합니다 : [왼쪽, 상단, 오른쪽, 하단]. 예 : [5, 3.5, 6, 2.4]. 단위는 size_unit 변수로 지정됩니다. |
| paper_size | (프린터 기본값) | 종이 크기를 양식으로 목록으로 지정합니다 : [너비, 높이]. 예 : [500, 650.5]. 단위는 size_unit 변수로 지정됩니다. |
| 해결 | (프린터 기본값) | 프린터의 해상도를 PPI (인치당 픽셀)로 지정합니다. |
| 방법 | "화면" | 프린터가 사용할 분해능을 설정합니다. "화면": 화면 해상도 (기본값) 또는 "High": 프린터의 최대 해상도 |
다음은 알려진 한계입니다.
다음과 같은 문제는 Qtwebkit에서 Qtwebengine에 이르기까지 포트에서 나타났습니다.
버그를 찾으면 프로젝트의 github 페이지에서 "문제"로보고하십시오 : http://github.com/alandmoore/admbrowser/issues. "버그"가 실제로 기능 요청 인 경우 아래를 참조하십시오.
Admbrowser는 이론적으로 Raspberry Pi에서 작업 할 수 있지만 Raspbian 10에서는 작업 할 수 없습니다 . Admbrowser는 Qtwebengine이 필요하며 (2020 년 1 월 현재) Raspbian 10에는 포장되지 않았습니다.
AdmBrowser를 사용하려면 Qtwebengine의 작동 버전을 제공하는 배포판을 사용해야합니다. 2020 년 1 월 현재, 다양한 솔루션이 다음 결과로 테스트되었습니다 (PI 3B+에서 테스트).
| 배포판 | 아치 | 공장? | 설명 |
|---|---|---|---|
| OpenSuse 도약 15.1 | ARM64 | 예 | 다소 느리지 만 완벽하게 작동하는 것 같습니다. |
| 우분투 메이트 20.04 알파 | ARMHF | 예 | 완벽하게 작동하는 것처럼 보이지만 매우 느립니다. OpenSuse보다 느립니다. |
| 우분투 메이트 18.04 | ARMHF | 거의 | 시작하지만 페이지를로드하는 동안 종종 SEGFAULTS를 시작합니다. |
| 우분투 서버 19.10 | ARM64 | 아니요 | qtwebenginewidgets를 가져 오면 qapplication 생성에 대한 pyqt 스크립트 segfault. |
| FedBerry 27 | ARMV7 | 아니요 | qwebengineview를 보여 주려고 할 때 segv_maperr |
Raspberry Pi 지원에 대한 지속적인 논의는 이슈 #16을 참조하십시오.
브라우저의 정신과 의도, 즉 키오스크, 간판 또는 기타 잠금 상황에 유용한 기능이며 브라우저를 간단하게 구성 할 수있는 기능이 있습니다. 또한 특징이나 동작에 대한 변경 사항이 옵트 인 (이를 가능하게하기 위해 스위치가 필요합니다)을 선호합니다.
코드를 기고하는 경우 다음과 같은 모범 사례를 따르십시오.
이 프로젝트에서 지원되는 기능이있는 경우 구현 된 세 가지 옵션이 있습니다.
Admbrowser는 GNU GPL v3의 조건에 따라 릴리스됩니다.