その他
MacSurf 1.68 – NetSurf on OS 9 Released
MacSurf 1.68 – NetSurf on OS 9 Released (github.com)
要約
MacSurf 1.68は、クラシックMac OS(PowerPC、Mac OS 9.1–9.2.2)向けのネイティブWebブラウザの最新リリースです。このバージョンでは、Duktape(ES5)に代わり、モダンなJavaScriptエンジンであるmacQJS(QuickJSのポート)が導入され、ES2023 JavaScriptがネイティブに実行可能になりました。これにより、JavaScriptの互換性が大幅に向上し、入力フィールドでのカーソル表示、テキスト選択、コピー&ペーストなどの基本的な機能も改善されています。
全文翻訳
mplsllc / macsurf Public
エラーが発生しました。ページを再読み込みしてください。
通知
通知設定を変更するにはサインインが必要です。
Fork 6 Star 206
MacSurf 1.68 — macQJS
Latest Latest Compare
タグを選択して比較してください
申し訳ありません、問題が発生しました。
Filter Loading
申し訳ありません、問題が発生しました。
エラーが発生しました。ページを再読み込みしてください。
結果が見つかりませんでした
すべてのタグを表示
mplsllcがリリースしました 07 Jul 05:35
v1.86 8569d53
MacSurf 1.68 — "macQJS"
クラシックMac OS(PowerPC、Mac OS 9.1–9.2.2)向けのネイティブWebブラウザで、実際のHTTPSとモダンなJavaScriptエンジンを備えています — プロキシ不要、コンパニオンマシン不要。
検証済み:
Power Macintosh G3 iMacおよびG4、Mac OS 9.2.2。
1.68という数字は、このサイクルの作業の大部分を推進したコミュニティおよびサイトである68kmla.orgに敬意を表しています。
MacSurfをフルタイムでサポートし続けてください
MacSurfはフルタイムのプロジェクトです。モダンなHTTPS専用Webを実際のMac OS 9ハードウェアに戻すこと — ネイティブTLS 1.3、実際のJavaScriptエンジン、PowerPC用にクロスコンパイルされたNetSurfレンダリングパイプライン全体 — は多くの作業であり、このペースはプロジェクトが収益を上げられる場合にのみ継続されます。MacSurfがあなたの古いMacをオンラインに戻したのであれば、寄付を検討してください。すべてのビットが本当に役立ち、サポーターは開発ログと次に構築されるものについての意見を得られます: Patreon: https://www.patreon.com/cw/MacSurf Ko-Fi: https://ko-fi.com/macsurf
プレッシャーはありません — しかし、私が尋ねなければ、これを続けることはできませんので、尋ねています。すでに寄付してくれたすべての人に感謝します。
68kmla.orgへ — 感謝します
このリリースは、このサイクルの作業の中心であった68k/PowerPC Macコミュニティである68kmla.orgに敬意を表して1.68と名付けられました。1.68の膨大な部分は68kmlaが存在するからこそ存在します: それは私が毎日テストするサイトであり、最も困難な実世界のレンダリング、ログイン、JavaScriptの問題が発生した場所であり、以下の多くの修正が徹底的である理由です。さらに、68kmlaコミュニティは、新しく、まだ粗削りなプロジェクトに対して本当に親切で歓迎的でした — バグに寛容で、詳細なフィードバックを惜しまず、あらゆる段階で励ましてくれました。その受け入れが、MacSurfが前進し続けた大きな理由の一部です。ですから: ありがとうございます、68kmla。
あなたのフォーラムをレンダリングし、ログインし、実際のMac OS 9マシンから返信を投稿できるようにすることは、構築する上で最もやりがいのあるターゲットの1つでした。
ヘッドライン: MacSurfは実際のJavaScriptエンジン — macQJS — を実行するようになりました
1.5以降で最も大きな変更は内部にあります: MacSurfのJavaScriptエンジンが置き換えられました。Duktape (ES5) は廃止され、MacSurfはクラシックMac OS用のQuickJSポートであるmacQJSを実行するようになりました。これは、Mac OS 9を実行するPowerPC上でモダンなES2023 JavaScriptをネイティブに実行します。
なぜこれが重要なのか:
モダンJSはそのまま実行されます。古いエンジンはES5のみだったので、MacSurfはカスタムのES6→ES5トランスパイラを搭載し、モダンなバンドルを実行前にプリプロセスしていました。そのトランスパイラは廃止されました — 非同期/待機書き換えがミニファイされたバンドルをサイレントに破損していました。macQJSは、let/const、アロー関数、クラス、テンプレートリテラル、Promises、ジェネレーター、モダンな正規表現などを直接実行します。実際のサイトの実際のスクリプト。ページはもはやJavaScriptをダンプする必要がなくなり、実際のサイトバンドルがデバイス上で実行されます。
保護されています。ヒープごとのメモリキャップと実行デッドラインにより、暴走または悪意のあるスクリプトがMacをハングさせたり、OOM(Out Of Memory)にしたりするのを防ぎます。macQJSは、他のクラシックMac OSソフトウェアも使用できるように、独自のプロジェクトとして開発されています。これは、新しいエンジンを実際のハードウェアで安定させるために、数ヶ月にわたる移行(fixes482–554)と長いハードウェア検証によるクラッシュ安定性アーチ(fixes565–577)でした。
このサイクルで修正されたショーストッパー
これらは「どうやって出荷されたのか」という基本的なもので、現在は安定しています:
テキストカーソルが見えて配置できるようになりました。入力フィールドとテキストエリアに実際の点滅するキャレットが表示されるようになり、タイピングの場所がわかります。フィールド内のテキストを選択できます。クリック&ドラッグによる選択が機能し、カット/コピー/ペーストはフォーカスされたフィールドにルーティングされます(クリップボードはMac Scrap Managerに接続されています)。
ログインが持続するようになりました。サイトへのサインインが持続するようになります — ブラウザはログイン直後に、キャッシュされた、ログアウト状態の古いページのコピーを提供していました。修正済み。
矢印キーの動作が改善されました。フィールド内のキャレットを移動したり、ページをスクロールしたりします — そして、ビューポート全体を横方向に押しやることはなくなりました。Tabキーはフォームフィールド間を移動します。キーボードでログインまたは検索フォームに入力できます。
ブラウザがほぼ瞬時に開くようになりました。診断セルフテストが起動時に重いJavaScriptベンチマークバッテリーを実行しており、最初のページ表示までに約17秒フリーズしていました。これは削除され、起動は1秒未満になりました。
クッキー同意/固定バーがクリック可能になりました。「承諾」ボタン(68kmlaのクッキーバナー)が、背後のページに落ちるのではなく、期待される場所にクリックできるようになりました。
2番目のウィンドウが最初のウィンドウを閉じなくなりました。ウィンドウのライフサイクルが修正されました。最大化(ズームボックス)が機能し、「MacSurfについて」が開きます。
1.68のすべての新機能、エリア別
JavaScriptエンジン (macQJS)
Duktape (ES5) を macQJS / QuickJS (ES2023) に置き換え、ビルドにリンクし、WITH_QUICKJS でゲートしました。カスタムES6→ES5トランスパイラと古い手動構築JS APIサーフェス(エンジンのギャップを埋め、一部のバンドルを破損させていた)を廃止しました。ページごとの新しいJSレルムにより、ページのトップレベルのlet/const/class宣言が次のロードで前のページのものと衝突しないようになりました。メモリ制限 + 約20秒の実行デッドラインにより、暴走スクリプトから保護されます。
サイト互換性 (68kmla / XenForo)
返信/投稿エディターが再び動作するようになりました。エンジンの切り替えにより、XenForoの実際のプリアンブル/コア/エディターバンドルがネイティブに実行され、クラッシュしました(parentNode-null → jQuery Sizzle → jQuery.support → XF.Element の連鎖)、エディターが1行のボックスに縮小しました。ES5の小さなシムが、これらの3つのバンドルに代わってhas-jsを設定し、XF.Elementを定義し、エディターを表示・サイズ調整するために挿入されています — これは、Mac OS 9から実際のフォーラム返信投稿を初めて可能にしたのと同じメカニズムです。このエンジンでしか発生しない、運命づけられたXenForoのフィーチャーバンドル(ライトボックス、メディアギャラリーなど)は、解析・例外発生ではなくスキップされるようになり、ページロード時間を節約します。
テキスト入力とキーボード
<input> / <textarea>(ネイティブ place_caret)での点滅するテキストキャレット、パスワードフィールドを含む。フィールド内でのマウスによるクリック&ドラッグテキスト選択。編集メニューとCmdキー(Scrap Managerクリップボード)を介したフォーカスフィールドへのカット/コピー/ペースト。Tab/Shift-Tabによるドキュメント順のテキストフィールドのサイクル(<form>の有無にかかわらず機能します)。矢印キー、Home/End、Page Up/Down、バックスペース、フォワードデリートはフォーカスフィールドにルーティングされます。フォーカスがない場合はページをスクロールします。古い「矢印がビューポートを押しやる」バグは修正されました。
Chromeとユーザビリティ
ブックマークメニュー。保存されたブックマークはクリック可能なメニュー項目として表示され、再起動後も保持されます。ダウンロードマネージャー。HTTPSダウンロードが機能し、ダウンロードフォルダ(サーバー提案、HFSサニタイズ、重複排除されたファイル名)に自動保存されるようになりました。モーダルではないダウンロードウィンドウは、行ごとのキャンセル機能付きで、バイト単位のライブ進捗を表示します。(古い「ダウンロードは何も行わない」は、fetchコールバック内部から-5699を返すモーダル保存ダイアログでした。)
ウィンドウの最大化(ズームボックス)が画面全体を埋め、正確に復元されます。アプリの隣にある1つのMacSurfDataフォルダに、MacSurfが書き込むすべてのもの(Cache/およびDownloads/サブフォルダ、ブックマーク、デバッグログ)が、MacSurf *フォルダを起動ディスクのデスクトップに散乱させるのではなく、そのルートに保持されます。ブックマークはCache/の外に配置されるため、キャッシュをクリアしても削除されません。(これにより、キャッシュとログが起動ボリュームのデスクトップにハードコードされていた古いバグも修正されます。)
「MacSurfについて」のAppleメニュー項目が機能します。
ネットワーキングとログイン
ログインセッションが持続します(ログイン後のリダイレクトがキャッシュから古いログアウトページを提供しなくなりました)。ログインはディスク上のMacSurfData内に永続化されるため、再起動後もログイン状態が維持されます。ホストごとのUser-AgentオーバーライドとRFC-6265クッキーJarは、実際のログインのために引き続き有効です。
レンダリングとCSS
分割スクロールバー/暴走ページ幅バグが修正されました(このサイクルで最大のレンダリング修正): 未解決のボックスがその「生まれた」幅INT_MAXを保持し、ドキュメントコンテンツの幅を約21億ピクセルに拡大し、