Chromium-legacyのプリント機能その後
Chromium-legacyによるプリント - gazi4's diary
以前、mac OS 10.7.5におけるChromium-legacyの印刷機能について色々書いてはいたけど、実はその後改善されていた。
印刷ダイアログの詳細をクリックして現れる「システム設定を利用して印刷」の下にあった「PDFをプレビュー」を使うと、Google chromeと同じように、たっぷり時間を取らされてだが、プレビュー.appにPDFを渡し、確認してから印刷できる。
Chromium-legacyに移行してから使えなくなってたように思うのだが(レンダリングが長すぎて使ってなかっただけなのか、ダイアログ表示がなかったのか、そのあたりの記憶は曖昧)、stableの119.0.6045.159.1で試したら同じように使えている。
Google chromeでは、通常のダイアログからの印刷結果と微妙に違っちゃってたような記憶があるんだけど、Chromium-legacyはいい感じになってると思う。
それよりも問題はblueboxdがChromium-legacyをやめちゃうみたいな噂が出ている。
確かに、本来なら節操なくビルドされ続けるCanaryが1303823(Chromium: 127.0.6494.0)が最新なんだが、これは今年の5/30で、3ヶ月以上放置されていることになる。
これに付随して、chromeのバグが放置されているじゃないかという話になっている。
4件の脆弱性を修正した「Google Chrome」セキュリティ更新 ~「V8」「WebAudio」に問題 - 窓の杜
v128.0.6613.119以降に相当するバージョンがが出ないと安心して使えないとかいう話。
ただし、
Chromium Legacy: Google Chrome for OS X 10.7 – 10.9 | Page 19 | MacRumors Forums
WowfunhappyはV8をオフにすればいいよといっていて、chrome://settings/content/v8 でV8をオフにすべしといっている。
私が今入れている119では項目がないので、chrome://flags/からFuture V8 VM featuresをDisabledにすればいいのかな?
関連するスレッドを見ていると、Palemoonなんかが人気だが、今のところは写真ACみたいなchromeでしか動作確認をしていないサイトや、Amazon Primeを10.7.5で見られるブラウザはChromium-legacyしかなさそうだ。
chromium_legacyを必要なMacでダウンロードできない問題
レガシーブラウザでGithubのreleaseのページに行って、assetsの下を開こうにも、アイコンがぐるぐる回り続けるだけでダウンロードリンクが表示されない問題がある。
ということで、下記の質問をChatGPTやBing AIに投げてみた。
あなたはwebデザインのプロです。古いブラウザでgithubにアクセスして公開プロジェクトの配布ファイルをダウンロードしようとすると、assetsのボタンの表示がグルグル回るだけでダウンロードリンクが表示されません。例 https://github.com/blueboxd/chromium-legacy/releases/tag/stable これはブラウザが悪いのではなく、webサイトがgoogle chromeのみを表示ターゲットにしてサイトの構成をアップデートしたためで、これは公平ではありません。一方、githubはassetsのapiがあり、プロジェクトによって特定のurlを指定することで、macのターミナルのようなコマンドツールを使うことで、ダウンロードリンクを取得することができるようです。この仕組みを応用することで、ブラウザのurlに入力したgithubのプロジェクトのurlを書き換えて、assetsのapiに対応したurlに書き換えるjavascriptを作ってください。
ChatGPT
以下は、GitHubのプロジェクトURLをassetsのAPIに対応したURLに書き換えるJavaScriptの例です。
// GitHubのプロジェクトURLを取得
var githubUrl = window.location.href;// URLを正規表現を使ってassetsのAPIに対応したURLに書き換える
var regex = /github.com\/([^\/]+)\/([^\/]+)\/releases\/tag\/([^\/]+)/;
var matches = githubUrl.match(regex);
if (matches && matches.length === 4) {
var owner = matches[1];
var repo = matches[2];
var tag = matches[3];
var apiUrl = 'https://api.github.com/repos/' + owner + '/' + repo + '/releases/tags/' + tag;
apiUrl += '/assets';
// ページのリダイレクトを実行
window.location.href = apiUrl;
}このJavaScriptは、GitHubのプロジェクトのURLを取得し、正規表現を使ってassetsのAPIに対応したURLに書き換えています。その後、書き換えたURLにリダイレクトすることで、ダウンロードリンクを取得できるようになります。
このJavaScriptを使用するには、GitHubのプロジェクトのページでブラウザの開発者ツールを開き、コンソールに上記のJavaScriptを貼り付けて実行するか、別途JavaScriptファイルとして保存してプロジェクトのページに読み込ませる必要があります。ただし、GitHubのAPIには制限があるため、大量のリクエストを送信する場合には注意が必要です。また、このJavaScriptはGitHubのAPIの仕様に依存しており、将来的に仕様が変更される可能性があるため、動作の確認が必要です。
Bing AI
はえ〜すごいもんだね。
※まともに動かないのでBing でもう一度頼んでみた。
あなたは優秀なプログラマです。 GitHubの公開プロジェクトの配布ファイルをダウンロードするには、assetsのボタンをクリックする必要がありますが、古いブラウザでは表示されないことがあります。これは、GitHubがGoogle Chromeなどの最新のブラウザに対応したサイトの構成をアップデートしたためです。これは公平ではないかもしれませんが、GitHubの方針です。 いっぽう、GitHubにはassetsのAPIがあり、プロジェクトによって特定のURLを指定することで、Macのターミナルなどのコマンドツールを使ってダウンロードリンクを取得することができます。例えば、https://github.com/blueboxd/chromium-legacy/releases/tag/stable の場合は、以下のようなコマンドを実行すればダウンロードリンクを取得できます。 curl -s https://api.github.com/repos/blueboxd/chromium-legacy/releases/tags/stable | grep browser_download_url | cut -d '"' -f この仕組みを応用して、ブラウザのURLに入力したGitHubのプロジェクトのURLを書き換えて、assetsのAPIに対応したURLにリダイレクトするJavaScriptを作ってください。
ご指示いただいた内容に基づいて、以下のようなJavaScriptコードを作成しました。このコードは、GitHubのプロジェクトページのURLを入力すると、そのプロジェクトの最新リリースのダウンロードリンクを取得して、そのリンクにリダイレクトします。
const redirect = async () => {
const url = window.location.href;
const repo = url.match(/github.com\/([^/]+\/[^/]+)/)[1];
const apiUrl = `https://api.github.com/repos/${repo}/releases/latest`;
const response = await fetch(apiUrl);
const data = await response.json();
const downloadUrl = data.assets[0].browser_download_url;
window.location.href = downloadUrl;
};
redirect();このコードは、GitHubのプロジェクトページで実行することができます。ただし、このコードはあくまで例示であり、実際に使用する際には適切な変更が必要です。
これをブラウザのコンソールに貼り付けると、シンプルにダウンロードのダイアログが出てくる。
Firefox Legacy 68.12.0p3(ESR 68.12.0相当)だと動くけど、Waterfox ClassicだとSyntaxError: redeclaration of const redirectとエラーが出るし、TenFourFox for intel(FPR32SP5 )だとnullとか言ってくる。
Waterfox Classic用
このエラーは、const redirectが再宣言されたことを示しています。constは定数であり、一度宣言されると再宣言することはできません。const redirectが宣言されている場所を確認し、その宣言を削除するか、変数名を変更してください。
修正後のコードは次のようになります。
const redirectFunction = async () => {
const url = window.location.href;
const repo = url.match(/github.com\/([^/]+\/[^/]+)/)[1];
const apiUrl = `https://api.github.com/repos/${repo}/releases/latest`;
const response = await fetch(apiUrl);
const data = await response.json();
const downloadUrl = data.assets[0].browser_download_url;
window.location.href = downloadUrl;
};
redirectFunction();
これで動いた。すごい。(TenFourFoxでは動かなかったけど)
chromium legacy downloader
Projects For Old OS X | Jonathan’s Nifty Website
このサイトでchromium legacy downloaderを導入した後で色々困った。
手軽にchromium legacyを更新できるのはいいんだが、手元に置いてある下位バージョンのchromiumでユーザーを追加できなくなったり、起動しても動かないバージョンが出たりと。
色々やって分かったのが、chrome://policy/を確認するとそれまで設定されていなかったポリシーが適用されているのがわかった。
起動・終了のたびに、それまで空白だった
~/Library/Preferences/org.chromium.Chromium.plist
にポリシーが設定されてしまう。
そのせいで、いったんWowfunhappy版chromium legacyを起動してしまうと、Bluebox版chromium legacyもこの影響を受けてしまうのだ。
Readmeを良く読み直すとポリシーの話は出てきてはいるが……。
~/Library/Preferences/org.chromium.Chromium.plistを毎回捨てるのが正解かもしれない。