
2026/07/08 1:24
MacSurf 1.68 – OS 9 向け NetSurf がリリースされました
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
元要約は明確で包括的かつ読みやすいものであるため、以下の改善版として再掲する。
まとめ
MacSurf 1.68 は、Classic Mac OS ユーザーに対して画期的なマイルストーンを象徴し、陳腐化したエンジンを macQJS(現代の ES2023 標準に対応したネイティブ JavaScript インタープリタ)で置き換えることで実現されました。この更新により、暗号化されたウェブサイトにアクセスするためにプロキシが必要不再是なく、レガシーの PowerPC ハードウェア上で直ちに真の TLS 1.3 暗号化および持続的なログインが可能となりました。ブラウザは désormais 実際に使用可能な体験を提供しており、点滅するテキストカーソル、適切なテキスト選択、Scrap Manager を通じた信頼性の高いカット/コピー/ペースト機能、修正されたウィンドウ管理、そして大幅に短縮された起動時間(約 17 秒から 1 秒未満)が備わっています。仮想環境における若干の装飾的なバグや、重負荷の HTTPS サイトに対する一部のリダイレクト問題が残存しており、これらは将来的な修正対象です。GitHub など一部のサイトに対して影響を及ぼす特定の不具合に制限されるものの、このリリースはデュアルブートや外部コンパニオンを使用せずに開発者が現代の JavaScript 機能と改善された CSS レンダリングを活用することを可能にします。本質的に、MacSurf 1.68 はブラウザを一過性の歴史的背景のものから、古いシリコンと現代的なウェブ機能を橋渡しする機能性あるツールへと変革させ、ユーザーを効率よく現代のフォーラム(例:XenForo サイトである 68kmla など)やサービスと対話することを可能にします。
本文
MacSurf 1.68 — 「macQJS」
MacSurf 1.68 は、Classic Mac OS(PowerPC、Mac OS 9.1–9.2.2)向けのネイティブウェブブラウザです。
概要
- 環境要件: PowerPC マシンのみ対応(検証環境:Power Macintosh G3、iMac G4)。
- 主要機能:
- 真正な HTTPS 機能とモダンな JavaScript エンジンを採用。
- プロキシやコンパニオンマシンの設定不要。
- OS 9.1 以降(特に 9.2.2)での動作を目標に開発。
- バージョン命名の由来: 「1.68」は、開発サイクルを牽引してきたコミュニティおよびウェブサイト 68kmla.org に献じます。
💰 MacSurf 継続的運営のご支援
MacSurf はフルタイムの開発が必要なプロジェクトです。本物の Mac OS 9 ハードウェアにもたらすためには、以下のような膨大な作業が必要です:
- ネイティブな TLS 1.3 の実装。
- 真正な JavaScript エンジン のポート。
- PowerPC 向けにクロスコンパイルされた NetSurf のレンダリングパイプライン全体の構築。
開発を継続するため、プロジェクトが自ら維持可能な収益を生むことが不可欠です。もし古い Mac を再びオンライン環境に戻したい場合は、以下の寄付プラットフォームをご検討ください。
- Patreon: https://www.patreon.com/cw/MacSurf
- Ko-Fi: https://ko-fi.com/macsurf
後援者様には開発ログへのアクセス権と、次の機能開発に関する発言権もいただけます。
🎉 68kmla.org へのご礼
今回のリリースは「1.68」というバージョン番号で命名し、68k/PowerPC Mac コミュニティのハブである 68kmla.org を記念いたしました。
- 開発の場: このサイトは毎日テスト対象であり、最も厳し目のレンダリング・ログイン・JavaScript 問題がここで発見され解決されました。
- コミュニティへの感謝: バグには我慢強く、詳細なフィードバックと励ましを惜しみなくお出しくださいました。その受け入れ姿勢が MacSurf を前に進ませる大きな理由です。
- 達成感: 「本物の Mac OS 9 マシン」から掲示板(68kmla)へのレスを表示・ログイン・投稿を実現させたことは、開発者にとって最大の目標の一つでした。
🚀 メインニュース:真正な JavaScript エンジン「macQJS」の実行
1.5 以降の最大の変更点は内部実装です。MacSurf の JavaScript エンジンが刷新されました。
- 廃止: 旧エンジンの Duktape(ES5)。
- 新採用: Classic Mac OS 向けにポートされた QuickJS、つまり 「macQJS」。
これにより、PowerPC / Mac OS 9 環境において、現代的な ES2023 JavaScript をネイティブに実行できるようになりました。
なぜこれが重要なのか?
- モダンな JS の直接実行:
- 旧エンジンは ES5 限定であり、MacSurf は独自の手動トランスパイラ(ES6→ES5)を使って事前処理していました。
- トランスパイラは廃止され、
によるミニファイドバンドルの破損も解消されました。async/await
/let
、矢印関数、クラス、テンプレートリテラル、Promise、ジェネレーターなどを直接実行可能にしました。const
- サイトのスクリプトの正執行:
- JS を簡略化する必要がなくなり、実際のサイトバンドルをデバイス上でそのまま実行できます。
- 安全性の確保:
- ヒープメモリ上限と実行時間制限(約 20 秒)により、悪意のあるスクリプトによるフリーズや OOM(メモリ不足)を防ぎます。
開発背景
- macQJS は独立したプロジェクトとして他社の Classic Mac OS ソフトウェアでも利用可能です。
- エンジン移行には数ヶ月を要し(修正番号 #482–554)、堅牢化のためのハードウェア検証とクラッシュ安定化工程(修正番号 #565–577)も含まれていました。
🐛 致命的バグの解決(Showstoppers)
以前は重大な不具合でしたが、現在は確立された動作状態です:
- テキストカーソル:入力フィールドやテキストエリアに点滅するカーソン(caret)が表示され、タイピングの着地点が視覚的に確認できます。
- テキスト選択: クリック&ドラッグでの選択動作が正しく機能し、カット/コピー/ペーストが Mac Scrap Manager と連携します。
- ログインセッション維持: ログイン後のリダイレクトで「ログアウト状態」の古いキャッシュ版が表示される問題が解消されました。
- アローキー動作改善: カーソル移動やスクロールに対応。「ビューポート全体を横にズラす」という不具合が修正されました。
- Tab キー対応: フォームフィールド間の移動が可能になり、キーボードだけでフォーム入力完了できます。
- 起動時間の短縮: 初回ページ表示までの約 17 秒のフリーズ(同期 JS ベンチマーク実行)を削除。現在 1 秒未満 で起動します。
- オーバーレイクリック修正: クッキーバナーなどの「Accept」ボタンが予期される位置で反応し、背景へ通ってしまう現象が解消されました。
- ウィンドウライフサイクル: 2 つ目のウィンドウを開いても、1 つ目が閉じられなくなりました。
- 機能拡張: ウィンドウの最大化(ズームボックス)機能と「About MacSurf」画面へのアクセスが可能になりました。
📊 メイン機能・改善エリア別詳細
🟢 JavaScript エンジン(macQJS)
フラグで制御可能にしました。WITH_QUICKJS- 独自トランスパイラと旧式ハンドクラフト JS API を廃止(一部バンドルを破損させていたため)。
- ナビゲーションごとに新しい JS ドメインを生成し、変数衝突を防ぎました。
- メモリ制限と実行時間制限により暴走スクリプトから守られています。
🟢 サイト互換性(68kmla / XenForo)
- レプライ/投稿エディタ: 動作を回復しました。(
→jQuery Sizzle→XF.Element というカスケードエラーによるクラッシュが修正)。parentNode-null - ES5 シム適用: 必死の XenForo 機能バンドル(ライトボックス、メディアギャラリーなど)は、解析時のエラーをスルーするよう改善され、読み込み速度向上に寄与しました。
🟢 テキスト入力とキーボード操作
/<input>
内に点滅するカーソル表示(<textarea>
)。native place_caret- マウスクリック&ドラッグによるテキスト選択が可能。
- メニュー「Edit」または Cmd キーでカット/コピー/ペースト(Scrap Manager クリップボード利用)。
- Tab / Shift-Tab: 文書内順序にフィールドを切り替え可能(
不要)。<form> - アローキー、Home/End、Page Up/Down が正しく動作し、「ビューポートズレる」バグ修正済み。
🟢 ブックマークと使いやすさ
- ブックマークメニュー: クリック可能な項目として保存・維持されます。
- ダウンロードマネージャー:
- HTTPS ダウンロードが正常に機能。
- 「Downloads」フォルダへ自動保存(HFS でファイル名クリーン化)。
- モーダルなしのライブバイト進捗表示と各行ごとのキャンセル機能付き。
- ウィンドウ最大化: 画面全体を埋め、元に戻せるようになりました。
- データ整理: アプリケーションフォルダ隣に「MacSurfData」フォルダが新設され、Cache、Downloads、ブックマーク、ログを一元的に管理します。(起動デスクトップへの散らばりを防ぎます)。
- 「About MacSurf」: メニュー項目が正常に動作します。
🟢 ネットワーキングとログイン
- セッション維持: ログイン後のリダイレクトでキャッシュ問題を回避。
- クッキー保存: 「MacSurfData」フォルダ内に保持し、再起動でも状態が維持されます。
- User-Agent 準拠: ホストごとのオーバライドと RFC-6265 準拠のクッキージャーを実装。
🟢 レンダリングと CSS
- スプリットスクロールバー修正:(INT_MAX の幅による横スクロール空白キャンバス問題) が解決され、XenForo フォーラムがフル幅で表示可能に。
- Web フォント対応:
アイコンフォント(Material Design Icons / FontAwesome)の描画が可能になりました。@font-face - テキスト結合改善: 単語間のスペース崩れ("softwareand" など)や、フォント計測と描画の不整合が修正されました。
- SVG 回帰問題修正: インライン SVG がアルファコンポジティングで消滅する現象を解決。
- ステイキー修正: クッキーバーなどのオーバーレイヒットテストおよび白色ページベースの背景不具合が解消。
- CSS Grid対応: トラック上限を 8 コラムから 16 コラムへ引き上げ、12 コラムグリッドの収縮を防止。
🟢 パフォーマンス
- 起動速度: イベントループ開始前の診断 JS を削除し、起動を劇的に高速化。
- ディスクキャッシュ: イメージと Web フォントを 64 MB の予算で LRU 方式でディスクへキャッシュ(再訪問時にもう一度ダウンロードする必要なし)。
- プレップド GWorld キャッシュ: ビームされた準備済みバッファをキャッシュし、スクロールのしなり(jank)を除去。
- ボックス構築高速化: HTML→ボックス変換を大規模処理単位へ調整し、スケジューラ往復ラウンドを約 10 倍高速化。
🟢 安定性
- 長時間使用およびクラッシュ安定性の大幅な向上(ボックスウォーク寿命保護、コンテンツレジストリライブネスチェックなど)。
⚠️ 既知の問題点
現時点で以下の制限や不具合があります:
- GitHub と一部の重厚な HTTPS サイト:
- TLS 接続自体は成功しますが、リダイレクト後の URL パースクイックが原因で失敗しています。
- 単一の非 SSL(http)サイトの macsurf.org から最新リリースをダウンロードすることをお勧めします。
- Tab キーの到達範囲:
- 現在、リンクやボタンまで到達せず、テキストフィールドのみ対象です。(次のサイクルで解決予定)。
- XenForo ナビゲーション表示:
- ログイン済みアカウントの一部ナビゲーションが灰色背景になる場合あり(プログレッシブエンスアンチメントの適用が遅いため)。
- position: fixed オーバーレイ:
- ステイキー以外のカセティング認識ヒットテストに失敗する場合があります。
- QEMU 環境でのウィンドウ最大化:
- 視覚的に誤っている場合がありますが、これはエミュレーター特有の事象であり、実機 G3/G4 ハードウェア上では正常です。
📥 ダウンロードとアップデート
最新ビルドは macsurf.org から入手してください。 GitHub などの重い HTTPS サイトが完全に動作していない間も、単純な非 SSL(http)バージョンをご利用いただき、Mac OS マシンのローカル環境から最新版をダウンロードできます。
💖 支援について
本プロジェクトが皆様にとって有用であれば、継続のご支援をお願いします:
- Patreon: https://www.patreon.com/cw/MacSurf
- Ko-Fi: https://ko-fi.com/macsurf