Watch

Mac OS X LionでSafariのWebページの自動更新を停止する

Mac OS X LionでSafariのWebページの自動更新を停止する

OS X LionでSafariのWebページの自動リロードを停止する

Mac OS X 10.7のSafari 5.1に追加された新機能は、一定時間操作がないとウェブページが自動更新されるというものです。この機能は不要で煩わしいように思えるかもしれませんが、ページの再読み込みを無効にする明確な設定オプションがありません。ありがたいことに、Stormcloud(DaringFireball経由)がSafari 5.1でこの厄介な動作を止める方法を紹介しています。無効化の手順は以下のとおりです。

  • Safariを終了し、ターミナル(/Applications/Utilities/にあります)を起動して、次のコマンドを入力します。
  • defaults write com.apple.Safari IncludeInternalDebugMenu 1

  • Safariを再起動すると、「ヘルプ」の横に「デバッグ」メニューが表示されます(これは「開発」メニューとは異なります)。
  • 新しいデバッグメニューをプルダウンし、「マルチプロセスウィンドウを使用する」が表示されるまで下にスクロールし、それを選択してチェックを外します。
  • 新しいSafariウィンドウを開き、Webページのタイトルの横に[SP]が表示されている場合は、シングルプロセスモードになっており、Webページの自動更新が防止されています。

「マルチプロセスウィンドウ」という設定を変更すると、なぜWebページの自動リロードに影響するのか疑問に思っている場合は、Stormcloud がこの機能とその仕組みについてわかりやすく説明しています。

ところで、「マルチプロセス ウィンドウ」とは何でしょうか?

Safari 5.1の新機能の一つは、基盤エンジンであるWebKit2のメジャーバージョンアップです。WebKit2の新しいプロセスアーキテクチャでは、Safariは2つの独立したプロセス、つまり「UIプロセス」(アドレスバー、ツールバー、ブックマークバー、メニューなどを含むSafariアプリケーション自体)と「Webプロセス」(実際のWebページを読み込んで表示する独立したプロセス)で構成されます。
他の目的とは別に、このアーキテクチャの目的は、ある程度のクラッシュ防止策を提供することです。Safariアプリケーション全体のクラッシュは(少なくとも私が見た限りでは)防ぎますが、Webページのテキストフィールドに入力した内容が失われるのを防ぐことはできません。すべてのWebコンテンツは単一のWebプロセスによって処理されるため、いずれかのページに不具合が生じてWebプロセスがクラッシュした場合、開いているすべてのタブが再読み込みされ、それらのページに入力した内容はすべて失われます。さらに、進行中のダウンロードもすべて中断されます。一部のダウンロードは再開できるかもしれませんが、多くのダウンロードは最初からやり直す必要があります。大きなファイルをダウンロードするときには、これは非常にイライラする可能性があります。

そのため、新しいマルチプロセス アーキテクチャの利点は、少なくとも Apple がタブの自動再読み込みの問題に対処するまでは、やや疑わしいものとなります (WebKit の全体的なアーキテクチャを再設計せずにこの動作を防ぐことが可能だと仮定した場合)。

基本的には善意に基づいた機能ですが、一部のユーザーにとっては頭痛の種にもなっています。場合によっては、Safariが本来よりもはるかに多くのメモリを消費し、アプリの速度低下を引き起こすこともあります。おそらく、これらすべてはソフトウェアアップデートで修正されるでしょう。

Safari 5.1をシングルプロセスモードで動作させる際の大きな注意点は、多くのプラグインや拡張機能が動作しないことです。特に(そして厄介なことに)広告ブロッカー、ClickToFlash、1Passwordが動作しないという点です。このトレードオフに見合う価値があるかどうか、あるいはChromeやFirefoxを使うのが良いか、ご自身で判断する必要があります。