Win2000+拡張v14で Firefox13 が 2/29版から動かなくなったよ

Firefox 13 Nightly Build が 2/29から大幅に変わりました.

fx13

まず、Windows 2000をインストーラーではじきます
setup.exe を XP互換保存してからインストールしないと
インストール不能になりました



fx13a

次に、起動すると落っこちるので、調べてみたところ、

Shell32.dll で SHParseDisplayName と SHOpenFolderAndSelectItems を使うようになりました

更に、 uxtheme.dll と iphlpapi.dll の GetAdaptersAddresses まで使うようになりました

というわけで、 kernel v15 で追従.
Windows 2000 Kernel32 改造計画【BM】

fx13b

それにしても、Win2000切った途端、APIに依存するプログラミングになったなぁ.

そんな技術で 大丈夫か Firefox

おすすめ

8件のフィードバック

  1. doplxyz より:

    API使うと作業が楽になるというイメージですが、ソレに頼ると根本的な技術レベルが上がらない…という事でしょうか?

  2. blackwingcat より:

    ~の関数を使うと楽に実装できるけど、~をインクルードしたり、
    #define で明示しないと従来の関数と互換性がなくなって
    動かなくなるとかいうのをチェックしないで
    新しい機能というだけで飛びついてる感じ。
    「だから、変なバグがいつまでもなくならんのだふふふ」と
    心の中で思ってる|・ω・)
    kernel32.dll や advapi32.dll や ws2_32.dll が原因で
    Windows 2000で動かなくなってるソフトはそういうのが多いですね

  3. 京橋 ひよわ より:

    新しい機能というより、2000のサポを切ることで2000でつかえなかった関数がつかえるようになった、というだけの話ではないでしょうか?
    できるだけ少ないコードで目的を達成するのが上級プログラマーらしいので、手法としてはAPIも悪くないと思います。
    3.0ではよく落ちたものですが、今も変なバグあるんですね。Chromeに転向してしまったので今の火狐はわかりません。

  4. えむけい より:

    これらのAPIは、以前からXP以降では動的インポートで使っていたものです。2000のサポートを切ったので、バージョンチェックして古いAPIにフォールバックしたりするコードを削除しました。

  5. Firefox初心者です。今までWindowsを使ってましたが、Firefoxの方が使いやすいと思い出しました(まだ使い始めて1週間くらいですが・・・)。でも、やっぱりどれも欠点はあるみたいですね。また寄らせてもらいます

  6. blackwingcat より:

    フォールバックするコード削除するなら
    Windows 2000を判定して、plugin-containerを無効にする部分も削ってくれたらいいのに|・ω・)

  7. えむけい より:

    あれ、一緒に削ったはずですけど。
    https://hg.mozilla.org/mozilla-central/diff/3aa3c980b5ec/dom/plugins/base/nsNPAPIPlugin.cpp
    もともとRtlGenRandom()がない環境でOOPP有効にするとFlashがクラッシュする問題の対策だったようなので、kernel v15環境下なら問題ないと思います。

  8. blackwingcat より:

    2/29版2000で実行するとPluginコンテナが有効にならず、XP互換モードで実行すると利用可能になるみたいなので、まだ判定コードが残ってるみたいです
    現行バージョンはわかりませんが、2000でエラー落ちしなくなったころの3.6では、関数の有無のチェックとOSバージョンのチェックの2重チェックが入っていました
    ちなみに、RtlGenRandomの代わりになる関数が、mozcrt にあるので、テテさんの私製バージョンはOOPPが3.6/10.2でもWin2000で使えるようになってるそうです|・ω・)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です