Thorium という Chromium をコンパイラの最適化などを使い,通常の Chromium に比べて 8〜38% のパフォーマンスの向上が実現できるものを知りました.
サブプロジェクトが多数あり,各種環境向けのThorium やThoriumOS, Codium などもあります.
モバイル端末の電池持ちが良くなったり,古い端末での動作が軽くなるのではないかと期待が持てます.
Thorium という Chromium をコンパイラの最適化などを使い,通常の Chromium に比べて 8〜38% のパフォーマンスの向上が実現できるものを知りました.
サブプロジェクトが多数あり,各種環境向けのThorium やThoriumOS, Codium などもあります.
モバイル端末の電池持ちが良くなったり,古い端末での動作が軽くなるのではないかと期待が持てます.
最近のスライドは Asciidoc で書いて,Reveal.js のhtml に変換して発表,そのhtml をChrome のheadless モードでPDF に変換していました.
こけれを行っていた端末を変更したせいかこれがうまくいかなくなりました.
Raspberry Pi OS armhfに libwidevinecdm0
パッケージが入ったようです.Raspberry Pi 3 Model Bでも動作したのでメモしておきます.
libwidevinecdm0
パッケージはWidevineというDRM付きコンテンツを閲覧するためのパッケージです.
Widevineは結構あちこちで見かけます.siteには以下のようなサービスが載っていました.
まずWidevineに非対応な状態でNetflixのコンテンツを閲覧しようとするとこのようなエラーになります.
Note
|
Netflixの会員じゃなくても次で試せます. TV番組・ドラマを無料で視聴 | Netflix お試し無料配信 |
ここで libwidevinecdm0
パッケージを導入してChromiumを起動しなおせばOKなはずですがうまく行きません.
chrome://components/
を見ても Widevine
が出てきません.
https://bitmovin.com/demos/drm にアクセスしてみると, Detected , using No DRM
と表示されDRMが使えないようです.
Raspberry Pi 4 Model B/400以外の事例が見当たらないのでもしかして何らかの要件が足りなくてRaspberry Pi 4 より前のバージョンでは動かないのかな?とか思ったのですが,もう少し調べるとRaspberry Pi OSのChromiumには chromium
と chromium-browser
の2つのパッケージがあるようです.
$ apt show chromium
Package: chromium
Version: 88.0.4324.146-1~deb10u1
Priority: optional
Section: web
Maintainer: Debian Chromium Team <chromium@packages.debian.org>
Installed-Size: 114 MB
Provides: gnome-www-browser, www-browser
Depends: libasound2 (>= 1.0.16), libatk-bridge2.0-0 (>= 2.5.3), libatk1.0-0 (>= 2.2.0), libatomic1 (>= 4.8), libatspi2.0-0 (>= 2.9.90), libavcode
c58 (>= 7:4.0), libavformat58 (>= 7:4.1), libavutil56 (>= 7:4.0), libc6 (>= 2.28), libcairo2 (>= 1.6.0), libcups2 (>= 1.7.0), libdbus-1-3 (>= 1.9
.14), libdrm2 (>= 2.4.38), libevent-2.1-6 (>= 2.1.8-stable), libexpat1 (>= 2.0.1), libflac8 (>= 1.3.0), libfontconfig1 (>= 2.12.6), libfreetype6
(>= 2.3.9), libgbm1 (>= 17.1.0~rc2), libgcc1 (>= 1:4.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.39.4), libgtk-3-0 (>= 3.19.12), libha
rfbuzz0b (>= 2.2.0), libicu63 (>= 63.1-1~), libjpeg62-turbo (>= 1.5.0), libjsoncpp1 (>= 1.7.4), liblcms2-2 (>= 2.2+git20110628), libminizip1 (>=
1.1), libnspr4 (>= 2:4.9-2~), libnss3 (>= 2:3.22), libopenjp2-7 (>= 2.2.0), libopus0 (>= 1.1), libpango-1.0-0 (>= 1.14.0), libpng16-16 (>= 1.6.2-
1), libpulse0 (>= 0.99.1), libre2-5 (>= 20160901), libsnappy1v5, libstdc++6 (>= 7), libvpx5 (>= 1.6.0), libwebp6 (>= 0.5.1), libwebpdemux2 (>= 0.
5.1), libwebpmux3 (>= 0.6.1-2), libx11-6 (>= 2:1.4.99.1), libxcb1 (>= 1.9.2), libxcomposite1 (>= 1:0.3-1), libxdamage1 (>= 1:1.1), libxext6, libx
fixes3, libxml2 (>= 2.7.4), libxrandr2, libxslt1.1 (>= 1.1.25), zlib1g (>= 1:1.2.2), chromium-common (= 88.0.4324.146-1~deb10u1)
Recommends: chromium-sandbox
Suggests: chromium-l10n, chromium-shell, chromium-driver
Conflicts: libgl1-mesa-swx11, libnettle4, libsecret-1-0 (<< 0.18)
Breaks: chromium-lwn4chrome (<= 1.0-2), chromium-tt-rss-notifier (<= 0.5.2-2)
Homepage: http://www.chromium.org/Home
Download-Size: 48.9 MB
APT-Sources: http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
Description: web browser
Web browser that aims to build a safer, faster, and more stable internet
browsing experience.
.
This package contains the web browser component.
$ apt show chromium-browser
Package: chromium-browser
Version: 88.0.4324.187-rpt1
Priority: optional
Section: web
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Installed-Size: 329 MB
Provides: chromium, chromium-browser-inspector, www-browser
Pre-Depends: dpkg (>= 1.15.6)
Depends: libasound2 (>= 1.0.16), libatk-bridge2.0-0 (>= 2.5.3), libatk1.0-0 (>= 2.2.0), libatspi2.0-0 (>= 2.9.90), libc6 (>= 2.18), libcairo2 (>=
1.6.0), libcups2 (>= 1.7.0), libdbus-1-3 (>= 1.9.14), libdrm2 (>= 2.4.38), libexpat1 (>= 2.0.1), libgbm1 (>= 17.1.0~rc2), libgcc1 (>= 1:4.3), li
bgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.39.4), libgtk-3-0 (>= 3.21.5), libnspr4 (>= 2:4.9-2~), libnss3 (>= 2:3.22), libpango-1.0-0 (>= 1
.14.0), libx11-6 (>= 2:1.4.99.1), libxcb1 (>= 1.9.2), libxcomposite1 (>= 1:0.3-1), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxkbcommon0 (>
= 0.5.0), libxrandr2, libxtst6, bash (>= 4), xdg-utils, chromium-codecs-ffmpeg-extra (= 88.0.4324.187-rpt1) | chromium-codecs-ffmpeg (= 88.0.4324
.187-rpt1), libraspberrypi0, libgl1-mesa-dri
Recommends: chromium-browser-l10n
Suggests: webaccounts-chromium-extension, unity-chromium-extension, adobe-flashplugin
Conflicts: chromium, chromium-browser-inspector
Replaces: chromium, chromium-browser-inspector
Homepage: https://chromium.googlesource.com/chromium/src/
Download-Size: 103 MB
APT-Manual-Installed: no
APT-Sources: http://archive.raspberrypi.org/debian buster/main armhf Packages
Description: Chromium web browser, open-source version of Chrome
An open-source browser project that aims to build a safer, faster, and more
stable way for all Internet users to experience the web.
そしてうまく行かなかったのは chromium
でした.
chromium-browser
を入れて(排他なので chromim
パッケージは削除される)再度試すと,chrome://components/
に Widevine
が現れて,
https://bitmovin.com/demos/drm にアクセスしてみると, Detected , using widevine
と表示されるようになりNetflixのコンテンツも閲覧できました.
Note
|
攻殻機動隊 SAC_2045 より.なんだかOPがPortal感 |
ということで,Raspberry Pi 3 Model B + Raspberry Pi OS armhf でも libwidevinecdm0
パッケージと chromium-browser
パッケージを導入することでWidevineのDRMコンテンツが観られるようになりました :)
(DRMなしで閲覧できたほうが嬉しいですが)
$ sudo apt update
$ sudo apt install chromium-browser libwidevinecdm0
$ chromium-browser &
$ dpkg-query -W chromium-browser* libwidevinecdm0
chromium-browser 88.0.4324.187-rpt1
chromium-browser-inspector
chromium-browser-l10n 88.0.4324.187-rpt1
libwidevinecdm0 4.10.1679.0-1
$ lsb_release -dr
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
$ uname -m
armv7l
$ cat /proc/device-tree/model ;echo
Raspberry Pi 3 Model B Rev 1.2
たまに以前ウェブで見た情報が欲しくなることがあります.履歴に残っていればいいけど消えてしまっているかも.ウェブブラウザのアクセス履歴のタイトルとURLだけでもテキストファイルに残しておくと便利かもしれません.
履歴はHistoryファイルをsqlite3で叩くと取れるのですが,タイムスタンプがよくあるUNIX timeでもなくとても大きな値です.
$ sqlite3 ~/.config/chromium/Default/History "SELECT \"[\" || group_concat(json_object('timestamp', last_visit_time, title, url)) || \"]\" FROM urls;" | jq . | grep timestamp | sort
-n | tail -1
"timestamp": 13256542361632384,
$ date +%s
1612703645
検索するとこのようなページを見つけました.
This timestamp format is used in web browsers such as Apple Safari (WebKit), Google Chrome and Opera (Chromium/Blink). It’s a 64-bit value for microseconds since Jan 1, 1601 00:00 UTC. One microsecond is one-millionth of a second.
このTimestampはUTC 1601-01-01からのマイクロセカンド秒らしいです.試してみます.
まずはUNIX timeの1601-01-01からの秒数に10^6を掛けてUNIX timeとの差を求めます.(GNU coreutilsのdateって1970-01-01より前の時間も計算できるんだ!)
$ echo "$( date --utc --date 1601-01-01 +%s ) * 10^6" | bc
-11644473600000000
Chrome時間とUNIX timeの差を引いてUNIX timeに変換します.
$ echo "( 13256542361632384 -11644473600000000 ) / 1000000" | bc
1612068761
UNIX timeを人間が読めるように変換
$ date --date="@1612068761"
Sun 31 Jan 2021 01:52:41 PM JST
1行にまとめる
$ date --date="@`echo "(13256542361632384/10^6-11644473600)"|bc`"
Sun 31 Jan 2021 01:52:41 PM JST
逆に今の時間をChromeのtimestampに変換
$ echo "(`date +%s`+11644473600)*10^6" | bc
13257218080000000
1日前のChrome時間
$ echo "(`date -d '1day ago' +%s`+11644473600)*10^6" | bc
13257336413000000
ということで1日分Chrome/ChromiumのHistoryはこんな感じで取得できそうです.
$ sqlite3 /tmp/History "SELECT \"[\" || group_concat(json_object('timestamp', last_visit_time, title, url)) || \"]\" FROM urls WHERE last_visit_time >= $(((`date -d '1 day ago' +%s` +11644473600)*1000000));"
Note
|
該当プロファイルを利用中の場合このようなエラーになります.Error: database is locked ブラウザを終了するか,Historyファイルを適当な場所にコピーしてそちらを使います. $ cp /home/matoken/.config/google-chrome/Default/History /tmp/ |
History
ファイルは既定値ではこの辺にあります.
~/.config/chromium/Default/History
~/.config/google-chrome/Default/History
/.config/BraveSoftware/Brave-Browser/Default/History
既定値以外の場合はこんな感じで検索? ~/.config
以外にもできるけどその場合はパスがわかっていると思います.
$ find ~/.config/chromium/ ~/.config/google-chrome/ ~/.config/BraveSoftware/Brave-Browser -name History -print
Operaは買収されてから使っていないのですが,古いプロファイルを見るとこの辺のようです.現在は変わっている可能性があります.
Safariは環境がないので未確認ですがArchiveBoxのscriptを見ると既定値は恐らくこのあたりです.
~/Library/Safari/History.db
$ dpkg-query -W bc google-chrome-stable chromium brave-browser coreutils sqlite3
bc 1.07.1-2+b2
brave-browser 1.19.92
chromium 88.0.4324.146-1
coreutils 8.32-4+b1
google-chrome-stable 88.0.4324.150-1
sqlite3 3.34.1-1
$ lsb_release -dr
Description: Debian GNU/Linux bullseye/sid
Release: unstable
$ uname -m
x86_64
ということで削除されちゃったんですね.
自分は先月怪しいという話を聞いて削除していました.その時タブが消えてしまい悲しかったのですがこんな感じで復旧させました.
タイムスタンプとタイトル,URLをjsonで出力します.
$ sqlite3 ~/.config/google-chrome/Default/History "SELECT \"[\" || group_concat(json_object('timestamp', last_visit_time, title, url)) || \"]\" FROM urls WHERE url LIKE '%bkeccnjlkjkiokjodocebajanakg%';" | jq . | sed -e 's/chrome-extension:\/\/klbibkeccnjlkjkiokjodocebajanakg\/suspended.html.*&uri=//'
何をやっているかというと, ~/.config/google-chrome/Default/History
がGoogle Chromeのsqlite3形式の履歴ファイルなので,この中からThe Great Suspenderのurlの含まれているurlを引っ張り出して整形しています.
Chromiumの場合は ~/.config/chromium/Default/History
Braveは ~/.config/BraveSoftware/Brave-Browser/Default/History
でした.
Default以外のprofileは名前いろいろなのでfindとかで探すといいでしょう.
$ find ~/.config/chromium/ ~/.config/google-chrome/ ~/.config/BraveSoftware/Brave-Browser -name History
ここで紹介したのはLinuxでの場合ですが,パスを変えると他のOSでもいけるはずです.
$ dpkg-query -W jq sqlite3 chromium google-chrome-stable
chromium
google-chrome-stable 69.0.3497.100-1
jq 1.6-2.1ubuntu1
sqlite3 3.34.0-1
$ lsb_release -dr
Description: Ubuntu Hirsute Hippo (development branch)
Release: 21.04
$ uname -m
x86_64
$ dpkg-query -W jq sqlite3 chrome brave-browser google-chrome-stable
brave-browser 1.19.90
google-chrome-stable 88.0.4324.146-1
jq 1.6-2.1
sqlite3 3.34.1-1
$ lsb_release -dr
Description: Debian GNU/Linux bullseye/sid
Release: unstable
$ uname -m
x86_64
例えばモニタの設定がこうなっている状態で
ウェブブラウザでJitsi MeetやZoomなどでスクリーン共有しようとすると複数のスクリーンがすべて一緒になって1つの画面として共有されてしまいます.
例えばLibreOffice でプレゼンテーションモードでセカンダリモニタにスライドをフルスクリーン表示させてそれを共有したいといったことがスクリーン共有で出来ませんでした.フルスクリーン表示の後そのウィンドウを共有することは出来ますが,途中で別のウィンドウを見せたい場合ウィンドウ共有をやり直さなければいけないのでとても面倒です.
これについて調べてみるとChromium では最近修正されたようです :)
以下からChromium のsnapshots binary を入手して試してみました.
試したバージョンは Chromium 85.0.4157.0
でした.
$ wget 'https://download-chromium.appspot.com/dl/Linux_x64?type=snapshots' -O ./chrome-linux.zip
$ unzip -l ./chrome-linux.zip | lv
$ unzip ./chrome-linux.zip
$ $ ./chrome-linux/chrome --version
Chromium 85.0.4157.0
$ ./chrome-linux/chrome --temp-profile --user-data-dir=`mktemp -d`
この環境で Jitsi Meet に接続して画面共有を試してみると Screen 1, Screen 2 とスクリーンごとに共有できるようになっていました :)
Stable に降りてくるのは暫く先でしょうが便利になりそうです.
ちなみにFirefox も少し調べてみましたが,以下のあたりでしょうか?未だ直ってなさそう?古いbugなので他にも上がってそちらで議論されていそうです.
$ dpkg-query -W chromium firefox chromium 81.0.4044.92-1 firefox 76.0.1-2 $ lsb_release -dr Description: Debian GNU/Linux bullseye/sid Release: unstable $ uname -m x86_64
Google Chrome/Chromium の 79 で Tab Freeze という機能が入ったようです.これはバックグラウンドの利用していないタブを停止してリソース消費を抑えるというもののようです.
似たようなもので The Great Suspender
という拡張機能があり,タブをつい開きっぱなしにしてしまう私はこれで大分助かっています.(この拡張機能はタブのCPUだけでなくメモリも開放されます.その代わり復帰に時間がかかります.)
今回の Tab Freeze で似たようなことが標準でできるようになっていそうなので試してみました.
この機能は未だ実験的な機能でDisabled になっているので手動で設定変更する必要があります.
設定の前に The Great Suspender
は競合しそうなので一旦削除しておきます.(類似のものを入れている場合はやはり消しておいたほうがいいと思う)
設定変更はアドレスバーに chrome://flags/#proactive-tab-freeze と入力してアクセスした項目で設定変更します.
いくつか選択項目がでてきます.
Enabled Freeze - Unfreeze 10 seconds every 15 minutes
, だと少しするとChromium が落ちてしまいました.
Enabled
, Enabled Freeze - No Unfreeze
だと落ちないと思ったのですが, Shift + Esc でタスクマネージャを起動すると落ちてしまいました.
てことで手元の環境では未だ不安定で使えないようでした.残念.またバージョンが上がったら試してみようと思います.
この辺の機能はOperaの省電力機能があって気になっているのですが,中国企業の奇虎360(Qihoo)に買収されてから怖いなと…….
$ dpkg-query -W chromium chromium 79.0.3945.79-1 $ lsb_release -dr Description: Debian GNU/Linux bullseye/sid Release: unstable $ uname -m x86_64
以下の記事は一昨日(2019-11-04)やっていたことで昨夜(2019-11-05)updateを確認したら降りてきていました :)
$ /usr/bin/chromium --version Chromium 78.0.3904.87 built on Debian bullseye/sid, running on Debian bullseye/sid
Debian sid amd64 で Chromium がなかなか更新されないのでとりあえずsnap版を入れてみました。
snapd未導入なら導入。
$ sudo apt install snapd
検索して、
$ snap find chromium Name Version Publisher Notes Summary chromium 78.0.3904.70 canonical✓ - Chromium web browser, open-source version of Chrome chromium-ffmpeg 0.1 canonical✓ - FFmpeg codecs (free and proprietary) for use by third-party browser snaps restart-chromium 1 mgibbs-dfrs - Restart Browser dashkiosk-client-browser 0.1 ogra - Chromium in Kiosk mode specifically adjusted for dashkiosk boxy-svg 3.29.0 jarek-foksa - Scalable Vector Graphics (SVG) editor chromium-ffmpeg-test 0.1 osomon - Test snap that exercises the slots exposed by chromium-ffmpeg
導入。
$ sudo snap install chromium chromium-ffmpeg
$ snap list|grep chromium chromium 78.0.3904.70 920 stable canonical* - chromium-ffmpeg 0.1 15 stable canonical* - $ dpkg-query -W chromium chromium 76.0.3809.100-1
/snap/bin/chromium
に入るのでそちらのパスを /usr/bin
より優先して通しておく。
例えばbashだと ~/.bash_profile
などで /usr/bin
の設定のあとに以下の設定を書いておく。
if [ -d "/snap/bin" ] ; then PATH="/snap/bin:$PATH" fi
パスが通っているのを確認する。
$ chromium --version Chromium 78.0.3904.70 snap $ /usr/bin/chromium --version Chromium 76.0.3809.100 built on Debian bullseye/sid, running on Debian bullseye/sid
ちなみに今回の環境はamd64でしたが、他にi386, arm64, armhf もあるようです。
今回の状態はメンテナが動けない状態なのかな?
$ snap list|grep chromium chromium 78.0.3904.70 920 stable canonical* - chromium-ffmpeg 0.1 15 stable canonical* - $ dpkg-query -W chromium snapd chromium 76.0.3809.100-1 snapd 2.40-1 $ lsb_release -dr Description: Debian GNU/Linux bullseye/sid Release: unstable $ uname -m x86_64
Google Chrome / Chromium で PDF ファイルをクリックすると既定値では組み込み PDFビュワーで開かれます.しかし,情報漏えいが起こるようです.
2019/3/1時点で未修正。
修正されるまでAdobe製のPDFリーダーの利用を推奨。
2019年4月下旬ころ修正の予定と発見者は報告。
ということで暫く治らないようです.自分は JavaScript を基本的に無効にしているので PDFドキュメントは開かれていないように見えますが不安なので無効にする設定を探してみました.
chrome://settings/content/pdfDocuments
にアクセスして「PDF ファイルを Chrome で自動的に開く代わりにダウンロードする」のチェックを On にする.
これで次から PDF ファイルへのリンクで自動的にダウンロードされるようになる.
#Okuar の JavaScript 無効化の設定が見当たらない……
環境
$ dpkg-query -W google-chrome-stable chromium
chromium 72.0.3626.121-1
google-chrome-stable 72.0.3626.121-1
$ lsb_release -dr
Description: Debian GNU/Linux buster/sid
Release: unstable
$ uname -m
x86_64
を見てなるほどと思ったのだけど,macOS, Windows の手順はあるけれどLinux の手順がないなてことで調べてみました.
参考にしたのはこちら.
/etc/opt/chrome
, /etc/opt/chromium
以下に json 形式で設定ファイルを設定するだけでした.
$ sudo mkdir -p /etc/opt/chrome/policies/managed /etc/opt/chrome/policies/recommended
{ "SyncDisabled":true, "RestrictSigninToPattern":".*@example.com" }
$ sudo mkdir -p /etc/opt/chromium/policies/managed /etc/opt/chromium/policies/recommended
{ "SyncDisabled":true, "RestrictSigninToPattern":".*@example.com" }
$ dpkg-query -W google-chrome-stable chromium chromium 69.0.3497.92-1 google-chrome-stable 69.0.3497.100-1 $ lsb_release -d Description: Debian GNU/Linux unstable (sid) $ uname -m x86_64