2015年5月23日土曜日

Tungsten 2.04 リリース

Tungsten Version 2.04をリリースしました。

変更点

Blinkエンジンの最新版、PGOビルド、x64版はフォーラムを覗くと何かあるかもしれません。

タブ化したローカルアプリのフリーズ対策を追加

ローカルアプリをタブ化すると、Tungstenが取り込んだローカルアプリの影響を受けてしまいます。 もし、ローカルアプリが応答しなくなった場合、Tungstenも応答できなくなってしまいます。

この現象を緩和するために、ローカルアプリのフリーズ検出と子ウィンドウの一時切り離しを行うようにしました。 これにより、従来よりもTungstenがフリーズしにくくなっています。

応答がなくなったことを検出すると、タブタイトルに[応答なし]が追加されるようになっています。

しかし、この方法は完璧ではなく、フリーズする場合があります。今後も改良していきたいと思います。

HiDPI対応

2.03まではHiDPIに対応していないため、HiDPI環境では96dpiのウィンドウをそのまま拡大するDPIスケーリングによって表示されていました。全体的にぼやけてしまい、せっかくの高精細ディスプレイのメリットが活かせていませんでした。

2.04ではHiDPIに対応し、高精細な表示が可能になりました。 デフォルトスキンも120dpi(125%)、144dpi(150%)、192dpi(200%)を用意したので、文字だけでなくスキン画像もくっきり表示できます。
ページメニューやページ情報などの表示位置がずれていたり、ブラウザ設定のグループボックスが切れる問題がありますが致命的な問題はないと思います。

Tungstenは.net frameworkを一切使っていないネイティブアプリケーションです。ネイティブアプリケーションが使用する昔ながらのWin32 APIには、解像度という概念がありません。解像度に応じて自力で拡大するという非常に地味な修正作業が必要です。 (例:Windows8/8.1時代のWin32プログラミング(p.30)) WPFやDirect2DならDPIを考慮してくれるようですが・・・

上記画像を細かく見ると、ブラウザツールバーの幅が異なっています。 コモンコントロール(ツリービューやツールバーなど)はフォントやアイコンをDPIにしたがって拡大しても、100%から拡大した通りの大きさにはなるとは限らないためです。 厳密な意味での高解像度化ではありませんが、致命的な問題にならない程度にとどめています。

Windows 8.1からの機能であるPer-Monitor DPIはBlinkエンジンが非対応のため、今のところ対応する予定はありません。

Blinkエンジンを42.0.2311.152にバージョンアップしました。(43はリリースされたばかりなので見送り。テスト版公開済)

Chromium 42からNPAPIプラグインが既定で無効になりましたので、必要な場合は試験運用機能(chrome://flags/#enable-npapi)にて有効化してください。

Chromium 41までの以下の問題が修正されました。

  • システムにインストールされたPPAPI Flashが引数指定なしで認識可能に
  • 一部GPU使用時にDirectX11版のANGLEが有効な場合、Canvasの描画がおかしくなる

Tungstenでは、以下のような独自修正を行っています。

  • アクティブでないブラウザウィンドウのチルトホイールイベントが正しく動作しないバグの修正
  • 不要機能の削除(Google Now、Googleアカウント同期機能、Chromiumアンインストーラー、翻訳、Chromium固有のブックマーク、履歴、ブラウザオプションの一部など)
  • ブラウザ終了時のレジストリ書き込みを抑止
    Chromium 41から、ブラウザが終了する度にレジストリ書き込みが行われるようになっています。

    クラッシュの原因調査の一環で用意された機能だと思われますが、Tungstenには不要(※)なので、該当処理を削除しました。
    ※Chromeにはクラッシュ時にクラッシュダンプとこの機能で取得したデータを含めてGoogleに送信する機能がありますが、 Chromiumにはなく、活用できないため
  • chrome_watcher.dllの依存関係を削除
    上記のレジストリ書き込み抑止と同様、クラッシュの原因調査関連機能なので削除しました。
  • デフォルトのプロファイル(--user-data-dir)のフォルダー位置をTungstenが使用する場所に変更
  • パスワード保存確認を情報バーに表示させるように変更
  • コンパイラ最適化オプションを一部変更

バグ修正

以下のバグを修正しました。

  • 一部環境でクイックスタートアイコンが表示できない
  • HiDPI環境でクイックスタートのアイコンが汚く表示される
  • スタートメニューのツリーの樹形図が特定のスクロール位置で正常に描画されない
  • Firefoxのブックマークの一部が表示されない (Thanks pochisinさん)
  • その他、細かなバグ

すでにTungstenをお使いの方は、デフォルトでTungstenの起動時に通知されるようになっています。 その指示に従ってダウンロード・インストールを行ってください。
ダウンロードページからダウンロード・インストールでもOKです。