MS_IEUpgradeInfo - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

IEバージョンアップ情報

概要

IE バージョンアップ情報 のリンク集です。

移行メモ(本ページ全体について): 本ページは IE6 ~ IE11 の移行期に
逐次追記されてきた記録である。Internet Explorer 11 デスクトップ アプリは
2022 年 6 月 15 日に提供終了
しており、現在は
Microsoft EdgeIE モード
唯一の後方互換手段になっている。
以下の記述は、当時どのような互換性問題が起きたかの事例集として
価値が残る部分を保持しつつ、現在の状況を各所で補足した。

サポートポリシーの変更

2014 年 8 月 7 日(米国時間)発表があり、2016 年 1 月 12 日以降
サポート対象となるバージョンが大幅に減少するため注意。

補足: この 2016 年 1 月 12 日の方針変更により、
**各 OS でサポートされる IE は「最新の 1 バージョンのみ」**となった
(例:Windows 7 / 8.1 では IE11 のみ)。
「OS がサポート中なら古い IE も使える」という前提が崩れた点が、
当時の移行を一気に押し進める要因になった。

基本的な対応方法

必要とされるノウハウは、膨大な量であり、

  • 網羅することは難しい
  • 確認するのは難しい

という事になるため、

  1. 実際に
    1. 移行
    2. テストし、
  2. 問題を
    1. 抽出し、
    2. 修正する。

といった方法が現実解となる。

補足: これは移行性評価作業の作業内容で述べられている
「移行ツール開発や網羅的なチェックリストは作成困難なので、実際に移行してみて洗い出す」
という考え方と同じである。

ブラウザ・シェア

移行先を検討する際に参考になるかも。

  • ブラウザ・シェア(シェアの該当節を参照)

互換性機能

互換性機能とは?

  • IE8 は、CSS2.1 規格へ完全準拠、および CSS 3 規格への部分的な準拠が行われた。

  • IE7 でもある程度の CSS2.1 規格への準拠は行われていたが完全ではなかった。

  • IE8 では従来のブラウザ(IE)向けに作られた Web サイトが正しく表示できなくなるので
    従来と同じように動作させるために、「互換表示」という機能を用意している。

  • 新しいブラウザ(標準に準拠)で古いレガシー・ブラウザ対応ページを見るため、

    • DOCTYPE
    • X-UA-Compatible
      • meta タグ
      • HTTP ヘッダ
    • クライアント操作(互換表示ボタン)

    などで、互換表示の設定が可能である。

各種、互換性機能

互換モード

IE6 からレンダリング方法を選択できるようになった。

  • 標準モード(業界標準を最大限)
    適切な DOCTYPE ディレクティブがある場合

  • Quirks モード
    適切な DOCTYPE ディレクティブがない場合(IE11 を除く)

    • IE5 Quirks モード
      IE5 互換(後方互換が目的)

    • IE10-11 Quirks モード
      IE10 から、機能が変更されている。

      • 後方互換が目的ではなく、
      • 相互運用性(他社製ブラウザーとの)を高める
  • 変遷

    • IE10 では、Quirks モードの機能が後方互換から相互運用性に変更されている。

    • また、IE11 からは、DOCTYPE による互換モード切替がなくなっている。

      しかし、IE11 はまだ、Quirks モードを内部的に残していて、
      X-UA-Compatible と DOCTYPE スイッチによる合わせ技で
      IE10 モード + Quirks レイアウトを有効にできるらしい。

ドキュメント・モード

IE8 以降、レンダリングエンジン変更をサポートするようになった。

  • レンダリングエンジン

    • IE=5-11, Edge
    • IE=EmulateIE7-11
  • 切替方法

    • 開発者ツール(F12)
    • X-UA-Compatible
      • meta タグ
      • HTTP ヘッダ
    • ツール > 互換表示設定
    • アドレスバー横の互換表示ボタン(IE11 で廃止)

ブラウザ・モード

  • 目的

    • 開発者が Web サイトをテストするための機能
    • 新しい IE をまだサポートしていない Web サイトを
      訪問したときのエンドユーザーのための機能
  • 機能

    • F12 開発者ツールのみで設定が可能なオプション
    • IE 自体の動きが選択されたバージョンになる。
  • 参考

補足(3 つのモードの違い): 混同しやすいので整理しておく。

名称 変わるもの 制御する側
互換モード レイアウト算出の規則(標準 / Quirks) DOCTYPE
ドキュメント・モード レンダリング エンジンの世代 コンテンツ(X-UA-Compatible)/サーバ
ブラウザ・モード UA 文字列や条件付きコメントを含む IE 自体の振る舞い 開発者(F12)のみ

移行で問題になるのは主にドキュメント・モードで、
ブラウザ・モードはテスト用途のため本番の挙動には関与しない。

エンタープライズ・モード

IEモード

  • IEモード(下記「Microsoft Edge へ > Chromium 版」を参照)

互換性機能を使用しない方法

クロス・ブラウザ対応方法

互換性機能を使用しない方法(=クロス・ブラウザ対応方法)として、

  • JavaScript のプロパティや
  • CSS の条件付きコメントで

制御する方法もある。

CSS2.1、3規格へ準拠

互換モードの打ち切りも考えられるので、互換モードを使用しつつ、
システム更改に伴う前提環境の変更などに伴い、CSS2.1、3 規格への準拠も検討する。

ただし、CSS2.1、3 規格に準拠したからと言って
クロス・ブラウザが保証されるわけではないので注意する。

まとめ

互換性機能を使用する方法

IE では互換性機能が使用できる。

互換性機能を使用しない方法

  • しかし、互換性機能の打ち切りも考えられるので、互換性機能を使用しつつ、
    システム更改に伴う前提環境の変更などに伴い、CSS2.1、3 規格への準拠も検討する。
    # CSS2.1、3 規格へ準拠でクロス・ブラウザが保証されるわけではないので注意

  • 互換モードを使用しない方法(=クロス・ブラウザ対応方法)として、

    • JavaScript のプロパティや
    • CSS の条件付きコメントで

    制御する方法もある。

補足(結果として著者の予想どおりになった): ここで著者が述べている
「互換性機能の打ち切りも考えられる」という懸念は、そのとおりになった。
条件付きコメントは IE10 でサポート打ち切り
ドキュメント・モードは IE11 で非推奨
そして IE 自体が提供終了した。
したがって、現在の移行ではこの節の「使用しない方法」だけが残った
と考えてよい。

参考

IE8

MSDN

docs.microsoft.com

その他

モーダルダイアログのサポート状況

  • Window システムのないタブレットやスマホでは、ダイアログは無い方向で良いですが、

  • Window システムのある Windows やその上で動作するエンタープライズ向けの
    業務アプリケーションには、showModalDialog があったら便利といえば便利です。

過去のサポート状況

過去には、IE 以外の最近の殆どのブラウザが showModalDialog をサポートしていました。

サポート打ち切り?

そして、HTML5 のプレビュー版には、showModalDialog の仕様が記述されていましたが、

しかし、最終的には削除されています。

コレに伴い、他のブラウザでのサポート打ち切りが発表されています。

この傾向は、やはり、

「スマホのウィンドウシステムの無い、フラットな UI には
showModalDialog はミスマッチであるためではないか?」

と考えています(スマホのサポートができなくなる)。

サポート終了へ。

補足(現在の代替): showModalDialog
モーダルであること(呼び出し元が停止し、戻り値を受け取れる)が本質だった。
現在これを再現するには、

  • 同一ページ内の <dialog> 要素 + showModal()(HTML 標準、戻り値も扱える)
  • 別ウィンドウが必要なら window.open + postMessage(ただし非同期になる)

のいずれかになる。呼び出し元が同期的に止まるという挙動は
現在のブラウザでは再現できないため、
業務アプリの移行では画面遷移フローそのものの見直しが必要になることが多い。
これは、本ページが繰り返し指摘している
「レガシーなエンタープライズ Web アプリの移行で注意が必要」という主張の核心でもある。

IE8へ

動向

IE8 移行時の問題点事例

IE:タブのプロセス分割

  • IE8 からタブ毎にプロセス分割されるようになりました。

  • Session(Cookie)はタブ(プロセス)間で共有されます。

  • このため、以前のバージョンで可能であった別プロセスとして起動し、
    別のユーザとしてログインする様なことがデフォルトでできなくなりました。

  • この動作は変更可能です(「IE8 Session」で検索すると情報多数ヒット)。

  • 以下、解決策(プロセス間でのセッション分離)についての説明。

    IE8 のプロセスモデルについて
     - Japan IE Support Team Blog - TechNet Blogs
      2. IE8 で別々のウィンドウでもセッション情報が共有されてしまう。
    http://blogs.technet.com/b/jpieblog/archive/2010/05/10/3331472.aspx

    1. TabProcGrowth=0 に設定することにより、
      IE8 の Loosely-Coupled IE(LCIE)機能が無効となり、
      プロセス間でのセッションを共有しない動作となります。

    2. FrameMerging=0 に設定することにより、

      1. IE8 のプロセスが異なる場合に
        セッション情報を共有しない動作となります。
      2. プロセス間でのセッション情報は共有されなくなりますが、
        IE8 のプロセスの分離動作(LCIE)は引き続き有効となります。
    3. レジストリのキーと種類は、上記の TabProcGrowth と同じです。

      • キー : HKLM (or HKCU) \Software\Microsoft\Internet Explorer\Main
      • 名前 : TabProcGrowth
      • 種類 : REG_DWORD
    4. IE8 の [ファイル]-[新規セッション]を選択することで、
      セッション情報を共有しないウィンドウを開くことが可能です。

    5. コマンドプロンプトやスクリプトで、-NoFrameMerging を引数で起動
      することで、セッション情報を引き継がず IE を起動することができます。

      iexplore.exe -NoFrameMerging <http://www.microsoft.com/>
      

補足(この問題は現在も形を変えて残っている): 「同一ブラウザで複数ユーザとして
ログインできない」という問題は、Cookie がプロセスではなく
プロファイル(Cookie ジャー)単位で共有されることに起因する。
現在の Edge / Chrome では、別プロファイルまたは
InPrivate / シークレット ウィンドウを使うのが標準的な回避策になる。
業務アプリ側で複数ユーザの同時ログインを前提にしている場合は、
移行時に運用手順を差し替える必要がある。

IE9へ

動向

ツール

IETester

IE開発者ツール

IE9 移行時の問題点事例

Win7、IE9、VBCOMの問題

ActiveX のダイアログでボタンを押下したあとにフリーズしてしまう。

インターネット上の情報から、

を適用しても問題は解決しなかった。

そこで、

[Windows 7(x64) IE9]
IE9 で VB6 の ActiveX コントロールのページの
"ファイルを開く" ダイアログを表示した後、
ダイアログを閉じたタイミングで IE がフリーズします。 - マイクロソフト コミュニティ
http://answers.microsoft.com/ja-jp/ie/forum/ie9-windows_7/windows-7x64/92af4d53-5051-4ad0-a098-bff05cbd53c7

を参考にして、

Reg:[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\New Windows]
DetourDialogs という文字列値を追加し、値を no と設定した所、

正常に動作するようになった。

ただし、DetourDialogs はサポート対象外の方法
であるとのこと(プレミア・サポートで確認済み)。

IE9でダイアログのサイズ指定が出来ない。

Windows 7 + IE 9 で、
frameset を含むページを showModalDialog で表示すると、
幅・高さの指定が無視され、ダイアログの表示が小さくなってしまう。

以下、解決策についての説明。

解決策としては、frameset を含むページに、

<meta http-equiv="x-ua-compatible" content="IE=6">

を追加する。

  • IE=6, IE=7 では意図した大きさになったが、
  • IE=8 では、やはり幅・高さが無視される。
  • IE=EmulateIEx は不明。

モーダルダイアログでポストバックを実装していた場合の対応方法は、
IE、WWWブラウザのいろいろを参照。

IE10へ

動向

ツール

エンタープライズ・モード

Compat Inspector

IE10 移行時の問題点事例

ASP.NET で IE10 を認識しない

http://blogs.msdn.com/b/d99/archive/2013/08/02/10438994.aspx

  • 原因:
    ASP.NET 標準のブラウザーファイル(ie.browser)には、

    <browser id="IE6Plus" parentID="IE">
      <identification>
        <capability name="majorversion" match="^[6-9]|\d{2,}$" />
      </identification>
        (中略)
    </browser>

    のように「IEx ~ IE9 までの定義」しかなく、IE10 に関する定義がないため、
    IE10 でアクセスした場合は「その他のブラウザー」のような扱いになる。

  • 対策:
    マイクロソフト提供の HotFix を Web サーバに適用する
    (上記、参考 URL から HotFix ダウンロード元サイトに移動可能)

補足(UA スニッフィングの教訓): この問題は、
バージョン番号を正規表現で判定していたことに起因する典型例である
(1 桁を前提にした ^[6-9] が 2 桁の "10" にマッチしなかった)。
同じ理由で、後年 Chrome / Firefox がバージョン 100 に到達した際にも
同種の障害が世界中で発生した。
移行時に UA 文字列を見ているコードを見つけたら、
機能検出(feature detection)へ置き換えるのが根本対策になる。

条件付きコメントがサポートされなくなった (Windows)

http://msdn.microsoft.com/ja-jp/library/ie/hh801214(v=vs.85).aspx

IE10で"__doPostBack" 実行エラー

IE11へ

動向

ツール

IE11 移行時の問題点事例

入力内容が消失

パスワードの入力テキストボックスが 2 つある画面にて、
フォーカス移動時に入力内容が消失する場合がある。

ウィンドウ名が認識されない

window.open などで名前付きの新しいウィンドウを開いても、ウィンドウ名が認識されない場合がある。

  • 発生条件
    • Internet Explorer 11 をビルトイン Administrator で使用した場合に発生
  • MS の情報
  • 備考
    • ビルトイン Administrator アカウントは危険性が高く、非推奨です(既定で無効)。

セキュリティゾーンによって文字幅が変わる

http://blogs.technet.com/b/jpieblog/archive/2014/02/14/3622887.aspx

IEがdisconになるかもしれない。

以下のようなアナウンスがされ、IE が discon になる可能性が出てきた。

Flash無効化の予定

IE, Edge とも、少しずつ、Flash を動作制限していき、2020 年には無効にするもよう。

補足: Adobe Flash Player は 2020 年 12 月 31 日にサポート終了し、
2021 年 1 月以降はコンテンツの実行がブロックされている。
Windows からも Flash コンポーネントを削除する更新が配信済みで、
現在は Flash に依存したコンテンツを動かす手段は残っていない

IEとEdgeの併用

以下の様な方法で IE と Edge を連携・併用することができるもよう。

IEのサポート期限

以下を見ると、IE11 の discon タイミングはまだ明確になっていないような気がする。

移行メモ: この節の記述以降に discon タイミングは確定した。
詳細は IE11サポート終了へ(2021/8/18) を参照。

Microsoft Edgeへ (<- Spartan <- IE12)

動向

ツール

併用という事もあり、移行ツールの案内は無し。

後方互換

  • 一時期、後方互換のドキュメント・モードのサポートが打ち切られるという噂だったが、

  • Microsoft Edge に対応するエンタープライズ版の IE12 はリリースされず、
    (IE12 は Spartan の、レンダリングエンジンが実装されると言われていた)
    IE11 を後方互換のために継続的にサポートするという方向性となっている。

  • 要するに、後方互換ではなく、併用と言う事で、
    Microsoft Edge では、ドキュメント・モードはサポートされないもよう。

使い分け

概要

従って、凡そ以下のような使い分けになるとのこと。

  • Internet Explorer 11
    過去に開発された Web システムとの後方互換のためのブラウザ。

  • Microsoft Edge
    Google Chrome や Apple Safari、Mozilla Firefox とも相互に運用できるブラウザ。

参考

  • Windows 10の2つのWebブラウザ、Microsoft EdgeとInternet Explorer 11 | HTML5Experts.jp
    https://html5experts.jp/ykasugai/16820/
    • Microsoft Edge というブラウザ
    • Internet Explorer というブラウザ

非対応になる機能

主な機能

Microsoft Edge で非対応となる主な機能は次のようにリストアップされている。

  • ActiveX
  • Browser Helper Objects(BHO)
  • Document modes
  • Vector Markup Language(VML)
  • VBScript
  • attachEvent / removeEvent
  • currentStyle
  • conditional Comments
  • IE8 layout quirks
  • DirectX Filters and Transitions

showModalDialog

また、上記には記載されていないが、Microsoft Edge では
他のモダンブラウザと同様に、showModalDialog もサポートされなくなっているので、
レガシーなエンタープライズの Web アプリケーションを移行する際は注意が必要になる。

参考

Chromium版

Chromium レンダリングエンジン採用へ。

  • 2020 以前は、EdgeHTML を使用していた。

  • 2020 以降、

    • iOS 版は WebKit を、Android 版は Chromium を利用。
    • 現在の Chromium は、Blink ベースとなっている。

背景

  • Edge ブランドを残してレンダリングエンジンを Chromium に変更

    • Edge のシェアが上がらない。
    • レンダリングエンジンは何でもイイ。
  • 案外、IE が discon にならないかも。

    • 海外でも、日本同様、企業における IE 利用率は高いもよう。
    • 超長寿のエンプラでは Long Term Support(LTS)なブラウザも必要とされている。

移行メモ(この予想は外れ、IE は discon した): 著者はここで
「案外、IE が discon にならないかも」と述べているが、
実際には IE11 デスクトップ アプリは 2022 年 6 月 15 日に提供終了した。
ただし著者の見立てのうち、
「超長寿のエンプラでは LTS なブラウザが必要とされている」という指摘自体は正しく、
その需要は下記の IE モード(2029 年までサポート予定)という形で満たされている。
つまり、なくなったのは IE という製品
であって、
後方互換の需要と提供は継続している、と読むのが正確である。

IEモード

Chromium 版の登場から併用ではなくなりつつあるので、
Edge 側に、IE モードと言う互換機能が新設された。

  • IE8 のエンタープライズ・モードの IE モードもある。

  • なお、本モードでも、showModalDialog は動作しない模様。

  • 以下のような仕組みになっている。

    • サイトリストで制御する。

      • ワイルドカードを使用できないホワイトリスト方式で制御する。
      • Configurable と設定すると、HTTP レスポンス ヘッダで制御可能。
    • 制限事項

      • 上記の方法を除き、Web サイト側から IE モードを制御できない。
      • コンテンツ側から IE モードかどうかは判別できない。
      • エンタープライズ・モードはサイト・リストへの設定が必須。
      • グループ・ポリシーで、クライアント側で手動切替を許可可能。
    • その他

      • Cookie は共有されないが、サイト・リスト設定で Edge → IE の単方向の共有が可能。
      • オートメーション
        ・IE モード直接起動はサポートされない(サイト・リストの設定次第)
        ・IE モードであれば、SHDocVw で HtmlDocument のインスタンスを取得・操作可能。
        ・Edge に関しては、オートメーション API は提供されないので、Selenium、Playwright 等を利用。
  • 参考

参考

IE11サポート終了へ(2021年8月18日)

サ終ですね。

概要

  • 2020 年 5 月 19 日
    IE のデスクトップアプリの提供終了予定を発表

  • 2020 年 8 月 17 日
    Microsoft 365 および他アプリでの IE サポート終了予定を発表

スケジュール

  • 2020 年 11 月 30 日
    Microsoft Teams Web アプリでの IE サポート終了

  • 2021 年 3 月 9 日
    Chromium 版ではないレガシー版
    Microsoft Edge デスクトップアプリのセキュリティ更新停止

  • 2021 年 8 月 18 日
    Microsoft 365 および他アプリでの IE サポート終了

  • 2022 年 6 月 16 日

    • IE のデスクトップアプリの提供終了
    • Windows Update をあてると Edge にリダイレクトされるようになる。

移行メモ(提供終了日): 元ページは「2022 年 6 月 16 日」としているが、
Microsoft の公式アナウンスは 2022 年 6 月 15 日(米国時間)である。
日本時間で 6 月 16 日に相当するため、実質的な差異はない。

対象

半期チャネル(SAC)で配信される IE11 デスクトップ アプリ

  • Windows 10 デスクトップ SKU(20H2 以降)
  • Windows 10 IoT(20H2 以降)

対象外

ただし、2021/8/18 以降、段階的にサポートが切れる。

  • IE プラットフォーム

  • Windows 10 以前の Client OS や、Windows 10 LTSC
    および Windows Server の IE11 デスクトップ アプリ

    • Client OS

      • 7 ESU(~?)
      • 8.1(~ 2023/1)
      • 10 LTSB/LTSC 以外(~ 2022/6)
      • 10 LTSB/LTSC
        ・Ent.2015(~ 2025/10)
        ・Ent.2016(~ 2026/10)
        ・Ent.2019(~ 2029/1)
    • Server OS

      • 2008 R2(~ 2020/1)
      • 2012(~ 2023/10)
      • 2012 R2(~ 2023/10)
      • 2016(~ 2027/1)
      • 2019(~ 2029/1)
      • 10 Server(~?)
    • IoT OS
      10 IoT LTSC(~?)

補足(WebBrowser コントロールは今も動く): 上記の「対象外」は
IE11 デスクトップ アプリの提供終了とは別に扱われるという意味である。
したがって、業務アプリが WebBrowser コントロール(MSHTML)を埋め込んでいる場合、
IE 本体が消えてもアプリ自体は動作し続ける。
ただし、これは IE11 相当の古いレンダリングが残るということでもあり、
新しい Web 標準は使えず、セキュリティ面でも推奨されない。
現在は WebView2(Chromium ベース)への置き換えが推奨されている。

ツール

IEモード

  • 引き続き利用可能

  • ただし、以下のケースでサポートされなくなる。

    • 2029 年までサポートされる(2029 年以降はサポート切れ)。
    • Microsoft 365 など、IE11 のサポートが切れた
      サービスに対して使用した場合はサポート切れ扱い。
  • 二段階の移行になるので、IE11 サポート終了への対応として、
    IE モードを利用しないで Chromium 版 Microsoft Edge に移行した方が良い。

移行メモ(正誤): 元ページの「使用た場合」は「使用した場合」の誤記と判断し、修正した。

完全移行

  • IE 専用タグチェックツールは存在しないもよう(IE モードにも当該機能はない)。
  • 最近は、生成 AI が利用できる(社内規則などに注意:機密情報保護、輸出の扱いなど)。

補足(何を探せばよいか): 専用ツールが無い以上、
基本的な対応方法のとおり「移行してテストする」のが基本だが、
静的な grep で拾える IE 依存は次のとおり。

  • ActiveXObject / <object classid=...>(ActiveX)
  • language="VBScript" / <script type="text/vbscript">
  • attachEvent / detachEvent / window.event / currentStyle
  • <!--[if IE]>(条件付きコメント)
  • X-UA-Compatible / document.documentMode
  • showModalDialog
  • execCommandActiveXObject("Msxml2.XMLHTTP")

これらを先に洗い出しておくと、テストで見つかる問題の量を減らせる。

参考

参考

IE、WWWブラウザのいろいろ

microsoft.com

blogs.msdn.com

Wikipedia


Tags: 移行

⚠️ **GitHub.com Fallback** ⚠️