
Apple の開発者向け Safari Technology Preview が本日バージョン 46 にアップデートされました。予想されていたバグ修正に加え、このブラウザ リリースは Apple が Service Workers をデフォルトで有効にした最初のリリースとなります。
Service Workerを使用すると、開発者はブラウザの枠を超えて動作する柔軟なウェブアプリケーションを構築できます。例えば、Service Workerをサイト上で使用することで、オフラインのネットワークアクティビティを考慮できます。空白ページを表示する代わりに、Service Workerはオフラインブラウジング用のデータをキャッシュできます。また、Service Workerはウェブページのプッシュ通知やバックグラウンドデータ同期にも活用できます。
Service Workerは将来iOSデバイスにも搭載される可能性があり、Webに全く新しい可能性をもたらすでしょう。Androidではすでに利用可能で、一部のサイトではService Workerを活用してブラウザベースのプッシュ通知を提供し始めています。
Safari Technology Preview 46 では、安全でないページでパスワードやクレジットカードのフォームに入力する際の新しいセキュリティ警告も導入されています。
最新のアップデートは Mac App Store で入手可能です。
完全なリリースノートは以下からご覧いただけます。
サービスワーカー
オフラインアプリケーションはWebにとって重要です。HTML5は最初にオフラインアプリケーションキャッシュでオフラインアプリケーションに対応しようとしましたが、その後継としてService Workers仕様が作成されました。
この標準は、ネットワークアクセスなしでウェブページのリソース読み込みをJavaScriptで処理することに焦点を当てた新しいAPIを規定しています。作業は継続中ですが、今回のリリースではService Workersをデフォルトで有効化できることを嬉しく思います。ぜひ皆様のウェブサイトで実装をテストし、WebKitプロジェクトのバグトラッカーからフィードバックをお寄せください。
- Service Workers をデフォルトで有効にしました (r225789)
self.registration
Service Workers 内で公開(r225296)- Service Worker のフェッチで CachedResource と CachedResourceLoader によって追加された HTTP ヘッダーを削除しました (r225574)
- 分離されたフレーム内のオブジェクトを呼び出すときに、ServiceWorkers API で拒否されたプロミス (r225577)
- ネットワーク リクエストから生成された画像コンテンツ
CacheStorage.add(url)
(r225708)- Fetch イベント ヘッダー フィルタリングを CORS モードでのみ適用されるように変更しました (r225809)
self.skipWaiting()
Service Workers 内で処理されます(r225460)- XMLHttpRequest を Service Workers に公開しないようにしました (r225549)
- 実装
clients.get()
およびclients.getAll()
(r225427、r225452)- サポートされて
container.register()
いるregistration.unregister()
内部サービスワーカー (r225456)- リモート検査メタデータの Service Worker のスコープ URL をターゲットにしました (r225633)
- ナビゲーション リクエストでナビゲート フェッチ モードを使用するようにしました (r225796)
- サービスワーカーで IndexedDB と Web ソケットを有効化 (r225644)
- サポートされて
container.getRegistration()
いるcontainer.getRegistrations()
内部サービスワーカー (r225513)serviceWorker.postMessage()
Service Workers の内部と内部のサポートを追加しましたserviceWorkerRegistration.update()
(r225462、r225455)- Service Worker クライアントのアンロード アルゴリズムのサポートを追加しました (r225483)
FetchEvent.clientId
(r225294)のサポートを追加しました- Service Workers の検査に関するさまざまな問題に対処しました (r225709)
- Service Worker によって生成されたリダイレクトのサポートが追加されました (r225297)
self.registration.installing
、、self.registration.waiting
およびService Workers の内部にデータが入力されていますself.registration.active
(r225341)セキュリティUI
- 安全でないページでパスワードまたはクレジットカードのフォームを操作するときに、スマート検索フィールドに警告を追加しました
プライバシー
- ウェブ互換性リスクを軽減し、フィンガープリンティングに使用されないようにするために、ユーザーエージェント文字列を凍結しました。
CSS
- 要素の scale() 変換によってコントロールが小さくなったり切り取られたりする問題を修正しました
<video>
(r225495、r225521)min()
トラックのサイズ変更機能がある場合、CSS グリッドの最小サイズを自動的に固定しますauto
(r225776)- 絶対位置の CSS グリッドアイテムの配置を実装しました (r225805)
レンダリング
<object type="image/svg+xml" data="foo.svg">
HTML ページで頻繁に空白になる問題を修正しました(r225791)- 画面上で要素をアニメーション化するときにレイヤーコンテンツが欠落する問題を修正しました (r225310)
transferToImageBitmap
WebGL オフスクリーン キャンバス オブジェクト用に実装(r225706)- ⌘- または ⌘+ によるズームによってビューポートの単位値が影響を受けないようにしました (r225277)
ストレージアクセスAPI
- ネットワークストレージセッション層にフレーム固有のアクセスを実装しました (r225827)
document.hasStorageAccess
関数を作成し、常に同じオリジンの iframe へのアクセスを許可しました (r225583、r225586)ウェブインスペクター
- 要素タブのトップレベルサイドバーパネルに計算値を追加しました (r225547)
- 再設計されたスタイルサイドバーに、ルールをフィルタリングしたり、新しいスタイルルールを追加したりする機能を追加しました (r225571、r225569)
- スタイルサイドバーに関連する疑似要素の表示を追加しました (r225572)
- 新しく追加されたプロパティの空の値フィールドで削除キーを押したときの動作を変更し、スタイルサイドバーの名前フィールドにフォーカスするようにしました (r225570)
- CSS プロパティの値を削除してもスタイル サイドバーから削除されない問題を修正しました (r225839)
- 計算スタイルパネルのクラスコンテナと重なる詳細セクションヘッダーを修正しました (r225595)
- スタイルサイドバーで、末尾にセミコロンを付けずにプロパティの後に新しいプロパティを追加する問題を修正しました (r225299)
- 最初のプロパティの前または後にプロパティを追加しても、スタイル サイドバーの末尾に追加されないようにしました (r225568)
- コンソールタブのフィルターバーが時々表示されない問題と、コンソールのクリアが常に機能しないケースを修正しました (r225280)
- XHR および Fetch を通じて読み込まれたリソースのコンテンツ ビューが、宣言された MIME タイプを反映するように修正されました (r225546)
- リモート Web インスペクタ ウィンドウが最後に使用したウィンドウ サイズを復元するように修正しました (r225451)
- キャンバスタブのピクセルコンテンツを変更するコマンドに対して表示される誤った警告を修正しました (r225602)
- キャンバスタブの初期ユーザーインターフェースエクスペリエンスを改善しました (r225587、r225487)
- 接続された iOS デバイスで「Web インスペクタを許可する」設定を切り替えた後に Safari がハングする問題を修正しました。
ウェブアセンブリ
postMessage
WebAssembly モジュールが iframe との間で postMessage を実行できるように修正されました(r225656)- スタックオーバーフローエラーを誤ってスローするバグを修正しました (r225411)
ウェブドライバー
- スクリプト実行中に表示されるユーザープロンプトの処理のサポートを追加しました (r225448)
- リンクと部分リンクのクエリを XHTML ドキュメントで動作するように修正しました (r225388)
- iframe クライアント座標をメインフレーム座標に正しく変換するように修正しました
computeElementLayout
(r225367)- ページのスクリーンショットにビューポートのみが含まれるようになる回帰を修正しました (r225501)
safaridriver
開いているウィンドウが残っていないときにウィンドウを閉じようとすると終了する問題を修正しましたJavaScript
- クロージャの再帰末尾呼び出しの最適化を修正しました (r225270)
- BigIntリテラルとJSBigIntを実装しました(r225799)
- より最適化された WeakMap と WeakSet を実装しました (r225832)
Object.assign
単一遷移加速による最適化(r225840)メディア
decoding="sync"
画像のor属性のサポートを追加しましたdecoding="async"
(r225616)- VCP H264 エンコーダーをサポートするプラットフォームでの使用を有効にしました (r225761)
- フルスクリーンビデオを終了した後にカーソルが表示されなくなる問題を修正しました (r225494)
"video/*"
ブラウザが画像コンテキストでビデオメディアをサポートしている場合、画像リクエストの Accept ヘッダーに含まれる(r225472)ウェブRTC
- getUserMedia がオンのときに AudioContext を開始できるように変更しました (r225785)
- ドキュメントがキャプチャを認識する前に getUserMedia が解決される問題を修正しました (r225828)
- WebRTC ビデオ トラックの再生時にディスプレイがスリープ状態にならないようにしました (r225822)
Apple のニュースをもっと知りたい場合は、YouTube の 9to5Mac をご覧ください。
jidoon.com を Google ニュース フィードに追加します。
FTC: 収益を生み出す自動アフィリエイトリンクを使用しています。詳細はこちら。