Win2000+拡張v14で Firefox13 が 2/29版から動かなくなったよ
Firefox 13 Nightly Build が 2/29から大幅に変わりました.
まず、Windows 2000をインストーラーではじきます
setup.exe を XP互換保存してからインストールしないと
インストール不能になりました
次に、起動すると落っこちるので、調べてみたところ、
Shell32.dll で SHParseDisplayName と SHOpenFolderAndSelectItems を使うようになりました
更に、 uxtheme.dll と iphlpapi.dll の GetAdaptersAddresses まで使うようになりました
というわけで、 kernel v15 で追従.
Windows 2000 Kernel32 改造計画【BM】
それにしても、Win2000切った途端、APIに依存するプログラミングになったなぁ.
そんな技術で 大丈夫か Firefox
API使うと作業が楽になるというイメージですが、ソレに頼ると根本的な技術レベルが上がらない…という事でしょうか?
~の関数を使うと楽に実装できるけど、~をインクルードしたり、
#define で明示しないと従来の関数と互換性がなくなって
動かなくなるとかいうのをチェックしないで
新しい機能というだけで飛びついてる感じ。
「だから、変なバグがいつまでもなくならんのだふふふ」と
心の中で思ってる|・ω・)
kernel32.dll や advapi32.dll や ws2_32.dll が原因で
Windows 2000で動かなくなってるソフトはそういうのが多いですね
新しい機能というより、2000のサポを切ることで2000でつかえなかった関数がつかえるようになった、というだけの話ではないでしょうか?
できるだけ少ないコードで目的を達成するのが上級プログラマーらしいので、手法としてはAPIも悪くないと思います。
3.0ではよく落ちたものですが、今も変なバグあるんですね。Chromeに転向してしまったので今の火狐はわかりません。
これらのAPIは、以前からXP以降では動的インポートで使っていたものです。2000のサポートを切ったので、バージョンチェックして古いAPIにフォールバックしたりするコードを削除しました。
Firefox初心者です。今までWindowsを使ってましたが、Firefoxの方が使いやすいと思い出しました(まだ使い始めて1週間くらいですが・・・)。でも、やっぱりどれも欠点はあるみたいですね。また寄らせてもらいます
フォールバックするコード削除するなら
Windows 2000を判定して、plugin-containerを無効にする部分も削ってくれたらいいのに|・ω・)
あれ、一緒に削ったはずですけど。
https://hg.mozilla.org/mozilla-central/diff/3aa3c980b5ec/dom/plugins/base/nsNPAPIPlugin.cpp
もともとRtlGenRandom()がない環境でOOPP有効にするとFlashがクラッシュする問題の対策だったようなので、kernel v15環境下なら問題ないと思います。
2/29版2000で実行するとPluginコンテナが有効にならず、XP互換モードで実行すると利用可能になるみたいなので、まだ判定コードが残ってるみたいです
現行バージョンはわかりませんが、2000でエラー落ちしなくなったころの3.6では、関数の有無のチェックとOSバージョンのチェックの2重チェックが入っていました
ちなみに、RtlGenRandomの代わりになる関数が、mozcrt にあるので、テテさんの私製バージョンはOOPPが3.6/10.2でもWin2000で使えるようになってるそうです|・ω・)