このサイトの記事更新は2019年11月に終了されました。過去記事アーカイブを公開しています。
投稿されたすべてのトピック
アドオンの互換性に影響する Firefox 25 の大幅な変更点
[これは Mozilla Add-ons Blog の記事 Major compatibility changes coming for Firefox 25 の翻訳です]
Mozilla では数週間前に Firefox 21 をリリースしたばかりですが、それと同時に 22 が Beta、23 が Aurora、24 が Nightly へ移行しました。Firefox 25 は 10 月下旬 までリリースされませんので、まだ十分に時間の余裕があります。しかし 24 が延長サポート版 (ESR) となる予定であることから、これは重要なリリースとなります。一部の大幅な変更は、潜在的な影響を最小限に抑えるため、ESR の次のバージョンへ投入されるからです。
Firefox 25 ではアドオンの互換性に影響する 2 つの大きな変更が計画されており、開発者の皆さんが前もって認識し早めに対策を取れるよう、ここで告知しておきたいと思います。変更点はまだ今後変わる可能性もありますので、適宜告知を行っていきますが、7 月に出る Nightly ビルド、あるいは 8 月中に出る Aurora ビルドは必ずチェックしておくべきでしょう。アドオンは主に以下の変更の影響を受ける可能性があります。
Australis
これは長期間にわたって作業が進められてきた Firefox テーマの大幅な刷新です。その目的のひとつは UI の簡素化で、アドオンについても考慮されています。
中でもツールバーの仕組みに大幅な変更が行われる予定です。アドオンバーを完全に削除するという提案に関しては 堂々巡りの議論 が行われています。最終決定はまだ行われていないようですが、最良のシナリオでもカスタマイズ対象が見つけづらくなり、最悪の場合は完全に削除されるでしょう。
メインのツールバーもアドオンのボタンやウィジェットのための専用エリアです。しかしユーザが作成した独自のツールバーは削除される模様です。概して、最小限のツールバー UI を提供すべきということです。多くのアドオンは既にそうなっていますが、ツールバーボタンを追加するための API が今後大幅に変わる可能性もあり、すべてのアドオンが対応を迫られるかもしれません。
Australis の変更点は UX Nightly Branch をインストールすることで事前にテストできます。その結果何かフィードバックがあれば、原文のコメント欄 でお知らせください。
セッション復元
Firefox ソースコードの他の部分と同様に、セッション復元もまたパフォーマンス向上のため非同期対応が行われているところです。Bug 874381 とその依存バグを見れば、このモジュールにアドオンに影響するいくつかの変更が行われていることに気付くでしょう。具体的には、多くのアドオンが依存している (__SS
で始まる) プライベート変数が削除されました。
影響を受けるアドオンは yoric のブログ記事 にリストアップされており、一部の開発者には既に連絡が行っています。ですが念のため、あなたのアドオンがそれらのプライベート変数に依存していないか自分自身でも確かめて、必要な場合は 25 での削除に先立ち対策を行うようお願いします。
Firefox 25 のリリースが近づいてきたら、より詳しい情報を提供できるはずですし、おそらく関連するドキュメントもまとめられるでしょう。現時点では、この記事が参考となり、来たる大幅な変更に向けて皆さんが調査を始められることを願っています。
Firefox 23 のサイト互換性に関わる修正のまとめ
先ほど Firefox 23 Aurora (プレベータ版) がリリースされました。Firefox 23 のサイト互換性情報 を投稿しましたので、Web 開発者の皆さんはご確認ください。今回のバージョンでは、SSL 使用ページ内に混在している非 SSL コンテンツ (スクリプト、スタイルシート、動画など) が初期設定でブロックされるという点に注意が必要です。
なお、Firefox 22 (現在のベータ版) で予定されていた、初期設定でのサードパーティ Cookie のブロックは、事前に使用状況データの収集解析を行うため、延期されました。
もし一覧に漏れや間違いがあるときは、下のコメント欄でお知らせいただければ幸いです。
Mozilla Hackathon 2013春 終了!!
4 月 27 日、28 日の 2 日間にわたって行った Mozilla Hackathon 2013 が無事終了しました。
今回は、乃木坂の Mozilla Japan 新オフィスに合計 28 名の参加者が集まり、
それぞれに持ち寄った作業を行いました。
今回も 10 年以上 Mozilla で活躍されているベテランコントリビューターや有名なアドオンの開発者から
Mozilla のイベントに初めて参加される方まで、様々な方が参加されました。
初日は 13 時からスタート。
参加者は、翻訳や製品ローカライズを行うチーム、アドオンや Firefox OS 用アプリの開発を行うチーム、
そして Firefox それ自身の実装や改良を含むプラットフォーム開発を行うチーム、の3グループに分かれ、
自己紹介タイムをはさみつつ、18時過ぎまで作業を行いました。
その後、参加者のほぼ全員による懇親会が行われました。
2日目の作業開始時刻は午前 9 時。
精力的に作業を行い、15 時からの成果発表を迎えました。
各人・各チームがそれぞれの作業内容とその成果を発表し、2日間にわたるイベントを締めくくりました。
参加された方々は、真剣に作業される一方、他の方々との交流も大切にされていました。
今後もこのようなオフラインでの交流の機会となるようなイベントを開催できればと思います。
今回参加されなかった方も、機会がありましたらぜひご参加ください!
なぜMozillaの存在が重要なのか
創始者の回想
2004年の7月にHTML5の始まりに関する記事を、HTML5という言葉は出さず書いたが、Appleが恥ずかしがりだったので、そこでは「Operaなどの」という形でだけパートナーについて触れている。
記憶しているところでは:
- @tは当時Microsoftで働いて (彼は現在Mozillaにいる、それは彼にとって非常に良いことだ)、 ワークショップの2日目では、私の前の席に座っていた。
- 既得権益が、XFormsは必要不可欠なものとして、しつこく売り込んでいた(イギリス保険協会がその標準化を行っていた!)。
- ブラウザベンダーは、互いに非協力的なことからXMLのユートピアに積極的に対抗しないことまで、ありとあらゆることを批判されていた。
- JavaScriptは、Bert(その何年後からに私はSXSWで彼に会い、とても仲良くなった)からも含め、こっぴどくやられていた。
Hixie (まだGoogleに入る前だったが、既にWeb Forms 2に携わっていた)とOperaのHåkonがAppleのDavid Hyattに加わり、Mozillaの@davidbaronと私がその後サンノゼのパブで加わった。そこで私がコルクの栓を抜いて「もうなんでもいい、HTML5をやろう!」みたいなことを言ったのだ。
私たちは、WHAT-WGで作業を行うつもりだった。Håkonが、ロイヤルティーフリーの特許契約が実現できそうな方法が1つだけW3Cに残っていることを気付かせてくれたので、私たちは仕様書の策定を目指すことになった。彼はまた、Microsoftは私たちの取るに足らない法的存在には加わらず、むしろW3Cの方を好むだろうことも、正確に予見した。
そうして私たちはHTML5に祝杯を挙げた。
2013年に時代を早送りする
1月のはじめ、 「大規模な転換がOperaで起きており、シニアディベロッパーが解雇され、会社に構造的な変化が起きている…。」と書いていた古い友人から連絡をもらった。昨日ニュースになったような内容は、他の情報源からすぐに確信できた:OperaはPrestoを捨てて、WebKit に移ろうとしている(chromiumと同じ香りがする)。
私の情報源の1人は、Mozillaについて、そしてなぜMozillaが彼にとって重要かについて、こう書いている:
そこには、賢い人、私も知っている大好きな人たちがいる。面白いことをやっている[プログラミング言語とオペレーティングシステム]。おそらく、比較的独立した最後のウェブ技術のプレイヤーだ。(歴史的にはこれまで気にかけてこなかったことだが、しかしApple iOSの領土を離れてGoogle Androidの領土に移ってから、私はロックインされていると気付き、まさに監視されていると感じている)
最近こんなコメントを以前より聞くようになった.これは雑音ではなく何かのシグナルなのだと思う。
なぜMozillaの存在が重要なのか
1月のシグナルは、私が同僚に向けて書いた、「Mozillaはいかにして違いを打ち出すか」というメールを思い出させた:
- 私たちは早く、頻繁に、そしてオープンなやり方で技術革新を起こす:標準化でもソースコードでも、ドラフト仕様でもプロトタイプ実装でも、フェアプレーをし、合意を得るために互いに訂正し合う。
- 私たちのグローバルコミュニティーは、検索、デバイス、ソーシャルネットワークに関するビジネスや議題、にわたり、エンドツーエンドで情報がより合わさった、様々なものの組み合わせで成り立っているウェブの特性を追求する。たとえ人々が、これらの技術的な特長を正確に述べられなかったり、あるいは全くできないとしても。彼らが一番求めているのは、「所有されないこと」だ。彼らは、ユーザーの主導権を求めているのだ。
- 私たちは、ユーザーが得をするようなやり方で、標準化を推し進め、ブラウザ間の競争を取り戻す。 私たちは再びそれに取り組んでおり、私たちの支持者も他のプラットフォームを標準に近付けている:SamsungはB2G発のデバイスAPIを使えるようにするためにWebKitのパッチを書いている。
- 私たちは政治的な駆け引きをあまりしなくてよいので、 パートナーを組んだり、連合したり、多目的な垂直のサイロの中にユーザーを捕まえておこうと躍起になる代わりに、水平統合をすることができる。
- 私たちは、あなたが選んだどんなサービスにおいてもあなたがあなた自身の体験やデータを ID付きで保持できる、というビジョンを推し進める。その例が、ソーシャルAPI や、DropBoxやBoxなどにストレージサービスをアウトソースする、新しいFirefox-syncプロジェクトだ。
最後の点は、非常に重要だ。 これこそ私たちが、Firefox OSに関する、こんなに優れたBizDevやパートナー関係を保持してきた理由なのだ。しかしこれはまた、私たちが強く信頼されるブランドを持ちコミュニティーへの従事を続ける理由でもある:人々は私たちに、中立の意見を言うことを、困難だが必要な戦いをすることを、時には孤高を守ることを期待しているのだ。
これらが重要な差別化要因であると私には分かる。これら全てを備えている競合は他にいない。
WebKitに思うこと
webkit-devを読んだ; とても聡明な人たちが投稿をしている。しかし、WebKitの全貌は、勝者の側の解釈である単純な「1つのWebKit」よりも、ずっと複雑で興味深いものだ。
そもそも、WebKitはただ1つではない。Android2.3を扱うウェブ開発者は痛い思いをしてそのことを学んだ。しかしそこは大目に見て、(何年もの)時がそれらの傷を全て癒したか、それに類する状況になったとしよう。
WebKitは8つのビルドシステムを持っており、それが困った挙動を引き起こす。ベールをはぎ取れば、過去何度か、コードがフォークしてしまうような緊張があったことが分かるだろう:V8対AppleのJavaScriptCore(「Nitro」)、iOS(最終的には解決されたものの、何年もの間apple.comの秘密のレポジトリにあった)、様々なグラフィックバックエンド、いくつかのネットワークスタック、2つのマルチプロセスモデル(何年もの間こっそり開発されてきたChromeのそれと、Appleの「WebKit2」のフレームワーク)。技術的な衝突の背後には、深いビジネス上の対立がある。
緊張が高まっている時には、コード共有はよい方法ではない。競合企業から参加している主要なリーダー達の、人扱いの巧みさともっとうまく共同作業をしようとする努力に賛辞を贈りたい。
誤解しないでほしい。ここでWebKitを批判したいわけではない。 WebKitは私の属するコミュニティーではないし、いくつかの大企業が世界中から利益を得るのに大いに役立っている — まず、Mozillaと並んで、質の高いウェブ標準のオープン実装を提供している。しかし、それは理想の楽園ではない(その点はMozillaも同様である)。
もっと興味があれば、かつてAppleで働き今はGoogleで(長期にわたってChromeプロジェクトで)働く人間の想いを綴ったエッセーとして投稿された、Eric SeidelのWebKitへの願いを見てみるといい。
私が言いたいのは、「1つのWebKit」など存在しないということだ。流通力は重要な要因である(詳しくはこのエッセーのもっと後ろの、終わりの方で述べている)。対立し合うビジネス上の狙いがWebKitを苦しめる。そしてコード共有はいつも困難をきわめる。すでにたくさんの料理人がいるからだ。
ソフトウェアの世界では、短期的に見れば、コーディングするよりも設計をコピーする方が簡単であり、コードを共有するよりもコピーした方が簡単だ。この精神により、オープンソースの各JSエンジン(そのうち2つはWebKitのためのもの)はお互いを参考にしている。MozillaもJSCのYARR正規表現JITを使っており、こういうコピーやコード共有は今後も増やしていくつもりだ。
ウェブエンジンのトレードオフ
みなさんの中には、まだこんな疑問を持っている人がいるかもしれない: Mozillaは、設計をコピーしたりコードの一部を共有するだけでなく、もうWebKitに切り替えてしまったらいいのではないか?
経済活動の遂行というレベルでこれに答えてしまうと、「正解の方法」をとらないことに対する弁解をリストアップすることになってしまうだろう。経済活動というこの暗黙の前提を私は拒否する。 詳しくは後述するが、ビジョン、戦略、そして着実なビジネス遂行という3つ全てのレベルにおいて、MozillaにはGeckoを進化させ続け、ほぼ新しいエンジンすら研究するだけの、十分な理由がある。
しかし、「なぜ切り替えないのか」という質問に直接答えるなら次のようになる: 純粋なコーディング作業だけで考えても (標準化団体やコミュニティーによる影響力を失うことは考慮せず)、「WebKitに切り替える」のに要する切り替えコストは、現実的でユーザーをつなぎとめておくことが出来る現在の製品タイムラインでは、あまりにも高すぎる。
XULはそのコストの一部であり、かなり部分を占めるが、単に技術的コストが大きいばかりではない。XULを失うことは、ユーザーがリッチで広く深い、Firefox アドオンのエコシステムの恩恵を失うことを意味するのだ。
別の言葉で言えば、デスクトップ版のFirefoxをすぐにchromiumと改名することはできず、まだFirefoxのままだということだ。Firefoxは、XULアドオンやオーサムバー、プライバシーとセキュリティのUIと基盤、そしてchromiumのソースコードには含まれない多くのプラットフォームの深い部分のロジックを必要としている。
Operaは、XULもMozillaの使命も私たちのようなコミュニティーも持たない純粋な商用製品なので、技術的な切り替えコストはずっと低い。特にOperaのデスクトップにおけるシェアは非常に低いし、ウェブコンテンツ全体を「小さく」し、OperaのデスクトップPrestoエンジンとブラウザを悩ませる、 「サイトが壊れています。ブラウザに問題があります」というメッセージが出たときにどうユーザーをつなぎ止めるかという問題からコンテンツ製作者を解放する、トランスコーディングプロキシとしてのOpera Miniだって同様だ。
にも関わらず、私の得た情報により、Operaが要した技術的切り替えコストはわずかではないことが分かった。Mozillaの場合にかかるであろう莫大なコスト(数年にもわたり、製品を破壊する)と比較すれば低いコストであるにもかかわらずだ。このことから分かるのは、切り替えには純粋に「費用対効果」の観点が重視されたということだ:Operaはエンジニアの人数を節約するだろうし、(少なくとも最初のうちは)標準化団体において追従者にすらなるだろう。
大局図
Mozillaの使命というレベルで見ると、モノカルチャーは依然として私たちが戦わなければならない問題だ。ウェブは、進化する標準に対する、相互運用可能性を保った複数の実装を必要としている。
2008年にHyattと私が、WebKitへの技術的および非技術的な切り替えコストについて話したとき、彼はまさにその言葉(「ウェブは、進化する標準に対する、相互運用可能性を保った複数の実装を必要としている」)を私に言った。その言葉は今でも真実だし、WebKitを共有する2、3の大企業がそれを素早く進化させようと努力してきた結果、WebKitの骨格が成熟した今では特にそうである。
たしかに、 1つの強大な勢力が1つの理想的なWebKitを広め新鮮に保っている状況を想像し、 「モノカルチャーを実現しよう」 という人もまだいるかもしれない。そのような人々だって、かつての独占的ルールのもとでは生きていけなかったかもしれない。もしくは、十分に未来が見えなくなって、 「我が後に大洪水あれ」 や 「長い目で見ると、私たちはみんな死んでいる」 のように思うかもしれない。そういう人たちは、John LillyがTumblrで述べている警告を読むべきだ。
@andreasgal が言うには、W3Cは2つ以上の相互運用された実装プロトタイプが無い標準を作らないよう努めており、WebKitとペアになるようなメジャーなエンジンは他にはMicrosoftのTridentしかないため、互いに独立したGeckoとWebKitが今では好まれているそうだ。確かにそうだが、しかしもちろん時にはみな協力し合うし、政治によって奇妙な仲間関係が生まれたりもする。
ハードウェアのトレンドと電力の壁問題を考えると、次の10年間で少なくとも今以上の数のウェブエンジンが出てこないかと期待している。この観点から、現在MozillaはGeckoだけに投資するのではなく、急速に普及している高度並列化ハードウェアアーキテクチャ(マルチコアCPUと超並列GPUを持つ)にフォーカスしたServoについても研究をしている。
未来のウェブエンジン
非常に現実的な話をすれば、競争から脱落しない数年間の間にWebKitに切り替えるために、私たちはWebKitに移行する取り組みを、平行してこっそりと開始すべきなのかもしれない。しかし私たちは、そのためのハッカーコミュニティー(有償無償問わず)を持ち合わせていない。XULやこれまでに述べた他の依存関係を考えると、FFOSのコミュニティーを含めても、そのようなコミュニティーには程遠い。(それに、私たちは「こっそり」とはやらない。)
私たちが適切に投資をしたので、Geckoは私たちとって良いものになっている、というのが実際のところだ。(継続的に進化するウェブの世界を考えれば、どんなエンジンをもってきたとしてもフリーランチを得ることはできない。)Geckoなくしては、私たちはFirefox OSもAndroid版Firefoxも作ることができなかった。これらのプロジェクトがGeckoを進化させ続ける力になる。
そしてもう一度言うが、Servoを忘れてはならない。 マルチコア/GPUの未来は、WebKit、Chromeのどちらかに特に有利に働くわけではない。これらのエンジンに投資しているさまざまな会社、私たちやもちろんAppleやGoogleやその他の会社、は、「プロセッサーの海」となる未来のハードウェア上でうまくスケールさせるために、エンジンを独立プロセスにするのと同時にマルチスレッド化にも取り組まなければならない。
スレッドだけでは済まない: アムダールの法則を見れば、スレッドも、SIMDの名でも知られるいわゆる「データ並列化」も、画像や音声・動画のデコーディングのみならずエンジンのあらゆるステージにおいて、より細かい粒度で必要とされることが分かる。しかしC++のスレッドを使うことは、他の手法と比べてより困難なバグとセキュリティ脆弱性を作りこむことを意味する。
私は、万一ということもあるかと思って、メモリ安全でないSMPカーネルプールの深みに飛び込んだSGIで、80年代の終わりに学んでいた。AppleとGoogleは、彼らのソースコードの多くをマルチスレッド化、そしてSIMDによる並列化すらできるし、おそらくやるだろうが、それにはしばらく時間がかかるし、生産性を重視し、無難なヒットを打ってくるだろう。Servoは、メインの実装言語、Rust、が並列性と同じくらい安全性を重視していることもあり、より安全な設計がされている。だから、私にはこれは技術的に筋の良い賭けに見える。
超並列ハードウェアに対する他のアプローチも考えられ、未来のハードウェアまだ十分にデザインされていない。だから、私たちはウェブエンジンの研究を進めていかなければならないと思う。
きわめて重要な責務
ここまで考察してきたこと以外に、私たちの立場からも私たちのパートナーの立場からも、新たなきわめて重要な責務があることに、私たちは気付いた:世界は新しくて、きれいで、安全で並列化された、オープンソースのウェブエンジンを必要としているのだ。単にマルチコアデバイス向けのものではなく、— 私たちとパートナーではその動機は異なるが — 途方もない資金力を持ちロックインを好む競合が支配するエンジン、すなわちWebKit、への依存を避けるためのものとして。
このような安全で並列化されたエンジンは、ウェブ標準をより宣言的で 暗黙のうちに並列化が行われるような方向に推し進めるためにも、配布されウェブ標準のフィードバックを受けるべきだ。
単なる切り替えコストや標準化の進展、そして私たちの使命や価値、それ以上のものが私たちにかかっているのである。
上記では触れなかった純粋なビジネス的始点で見て言えるのは、WebKitのようなエンジン(もしくはこの文において似たような位置づけのもの、例えば中国におけるTridentのラッパー)を使うと、流通シェア競争に製品を陥らせるということだ。一般的に言って、フロントエンドの技術革新は難しくない;どのみちコピーは簡単だ。AndroidにおけるDolphinがいい例だ。もしくは、Maxthonが20%以上あった市場シェアを一年で1%以下に落としたこと、中国市場で1%以下のシェアになっていることを考えてみればいい。フロントエンドの技術革新を特にしていないQihoo/360が同じ期間に0%から20%までシェアを拡大していることも考えてみるといい。
プラットフォームの深い部分の技術革新は難しくなることがあり、そして私たちの経験によれば、その革新こそ全ての人に恩恵のあるウェブの前進につながるものである。JSのパフォーマンスが一例である。他の例としては、権限を持ったネイティブアプリケーションスタックにしか使えなかったデバイスAPIを含めるようにウェブを拡張することが挙げられる。複数の相互運用されているオープンソース実装やユーザーが所有するベンダー非依存な資産によって、プラットフォームの技術革新が標準に基づき、そして標準化されている限り、「実装と技術革新の質」を確保する難しさは問題にならない、というのが私の意見である。
Mozillaの話に戻ろう。私たちは競合勢力のようにデスクトップにおける流通力を持たないが、それでもうまくやっており、もっとうまくやる態勢も整っている。これこそ、ユーザーに対する素晴らしい証明であり、私たちの使命と私たちが作っている製品の、ユーザーにとっての価値である。そしてデスクトップ版のFirefoxに加え、(特にウェブアプリケーションの実行ランタイムとしての)Firefox OSとAndroid版Firefoxは、次の数年間でモバイル分野において大きな流通シェアを得ると私は信じている。
さあがんばろう
さあ、がんばってやり抜こう。HTML5と手軽に使える<video>要素の共同創始者によって創られた、残された数少ない独立系ウェブプラットフォーム、Prestoがなくなってしまったそうだ。OperaがWebKitプロジェクトの中でも良き戦いを続けてくれることを私は願っている。Mozilaコミュニティーは、Operaファンのあらゆるレベルの貢献(標準化、ハッキング、雇用)をいつでも歓迎する。
私たちには未来は分からない、しかしSarah Connorが刻んだように、「運命は自ら作るしかない」のだ。どんなことが起こっても、Mozillaは耐え抜く。
/Brendan Eich
その他の意見:
Firefox 21 アドオン互換性情報
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 21 の翻訳です]
Firefox 21 が 5 月 14 日 [日本時間同日深夜] にリリースとなります。Firefox 21 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 21 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
一般
- プラットフォームとアプリケーションのリソースが分離され、個別に読み込めるようになりました。Firefox の Metro 対応を行うにあたって、広く利用されている各種 JavaScript モジュールを含め、いくつかの変更が必要となりました。
- Firefox 20 およびそれ以前では、
resource:///modules/
、resource://gre/modules/
、resource://app/modules/
は同じ場所を指します。 - Firefox 21 およびそれ以降では、
resource://gre/modules/
とresource://app/modules/
は異なる場所を指し、従ってそこに含まれるモジュールも別々となります。resource:///modules/
はresource://app/modules/
を指します。ただし、開発者が必要とするモジュールの多くは/gre/
にあります。最も簡単なテスト方法は、Firefox 21 もしくはそれ以降のバージョンを開き、あなたの拡張機能でモジュールのインポートに使用している URL を読み込んでみることです。従来通り動作するようであれば、修正の必要はありません。
- Firefox 20 およびそれ以前では、
- XBL スコープが有効となりました。XBL バインディングをコンテンツページに挿入する場合、クロームに対する、あるいはクロームからの関数呼び出しが特定の状況で失敗するようになり、追加のコードが必要となります。詳しくはバグを参照してください。
language
属性を通じてより上位の JavaScript バージョンを指定できる機能が削除されました。これは、XUL ドキュメント内であっても、language
属性を使って JavaScript のバージョンを明示的に設定することができなくなったということです。- SpiderMonkey から E4X が削除されました。E4X は今後使用できません。
-moz-orient
プロパティがauto
キーワードに対応し、それがデフォルト値となりました。-moz-user-select:none
が-moz-user-select:-moz-none
と同じ挙動になりました。parseInt
関数が 10 進数でパースされるようになりました。parseInt("042")
は42
となります。
Places
- Places から廃止予定となっていた同期 API が削除されました。一部の同期間数が削除されました。変更点の一覧はバグの最初のコメントを参照してください。これはニュースグループでも 事前に告知されていました。
nsINavHistoryFullVisitResultNode
が削除されました。これにより、一部のアドオンで使用されている 2 つの定数、nsINavHistoryResultNode.RESULT_TYPE_FULL_VISIT
とnsINavHistoryResultNode.RESULT_TYPE_DYNAMIC_CONTAINER
も併せて削除されたことに注意してください。PlacesUIUtils.showBookmarkDialog
から廃止予定となっていた 3 番目の引数が削除されました。- FUEL からライブブックマーク対応が削除されました。
onBeforeDeleteURI
とonBeforeItemRemoved
が削除されました。- Places のクエリ結果におけるノード置換が廃止され、
nodeReplaced
ビュー通知が削除されました。nsINavHistoryResultObserver.nodeReplaced
も削除されました。
XPCOM
nsIDownloadManagerUI
が旧式のダウンロード ID を使っている問題が修正されました。オプションのダウンロード ID 引数はnsIDownload
オブジェクトとなりました。ContentChild
のnsIConsoleListener
において、addref
、release
両メソッドがスレッドセーフ化されました。この変更は Bug 852220 によって行われました。簡単に言えば、メッセージが記録されたときに、即座にnsIConsoleListener
オブジェクトが通知されると期待すべきでないということです。リスナーを削除してしまうとメッセージを失う可能性があります。NodeIterator
とTreeWalker
からexpandEntityReferences
が削除されました。nsSelectionIterator
が削除されました。nsISelectionPrivate.getEnumerator
も削除されました。
新機能
- 言語パックが初期設定で再起動不要となりました。
- 安全な PRNG が DOM 内に露呈されるようになりました。
window.crypto.getRandomValues
で暗号学的にランダムな値を得ることが可能となりました。
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 21 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 はまもなく行われますので、AMO にアドオンを登録している方はメールをチェックしてみてください。
Firefox OS の課金アプリを作るには
原文: Building A Paid App For Firefox OS
Firefox OS の Firefox Marketplace をぱっと見たところでは Apple Store や Google Play と大差なく見えるかもしれないが、重要な違いがあります: あなたを Mozilla にロックインしたり、Firefox OS 端末にロックインしたりすることはありません。レシート プロトコルによって、どのオープン Web デバイスでも動作する Web アプリを販売できるようになります。Mozilla 以外の マーケット もレシートフォーマットを実装することで Firefox OS のアプリ販売に参加でき、ユーザは何処のストアで課金したアプリを使ってもその違いに気づくことはありません。
他のデバイスが レシート プロトコルを実装すれば、理論的には 一度買えば何処でも使える ようになります。もちろんこれは、鶏か卵かの問題であり、Mozilla は卵となって、分散的なレシートコンセプトを実証し、プロトコルの改善を続けます。Mozilla はレシートが正しく機能し、課金アプリができるかぎりポータブルで「Web らしい」ものとなるよう他のベンダーと協力していきます。
開発者のみなさんへ
自分のアプリのレシートを検証 する責任は各アプリにあります。Firefox OS でアプリを販売しようとしている開発者は、この投稿を読めばレシート検証の実装をするにあたって幸先の良いスタートが切れるでしょう。仕様に準拠した Web ランタイムやマーケットプレイスを実装しようと考えている方にも役立つかと思います。
navigator.mozApps JavaScript API でアプリケーションのデバイスレシートにアクセスできます。レシートを検証する最も簡単な方法は、receiptverifier.js などのクライアントサイドライブラリを読み込み、レシートに埋め込まれたホスト型の検証サービス URL を使うことです。receiptverifer のドキュメントに詳細が書かれていますが、アプリの起動時に次の JavaScript を呼び出すだけでとても簡単です:
mozmarket.receipts.Prompter({ storeURL: "https://marketplace.firefox.com/app/your-app", supportHTML: '<a href="mailto:you@yourapp.com">email you@yourapp.com</a>', verify: true });
じゃじゃーん!これは高水準なショートカット検証であり、レシートが確認できないか無効である場合にはアプリ内に問い合わせ画面が表示されます。verifier のドキュメントには低水準の検証方法も書かれています。
より完備な例としては、テストに使用しているアプリ Private Yacht のコードをチェックアウトしてください。このアプリでは receiptverifier.js ライブラリでクライアントサイドの確認をどのように行っているかだけでなく、サーバサイドの確認を Node.js を使ってどのように行っているかご覧頂けます。他にも Python ライブラリ (更に Django 用ライブラリ) を用意しており、サーバ側でのレシート確認にお使いいただけます。仕組みはどうなっているのか?各レシートは JSON Web Tokens のマッシュアップです。プロパティにはレシートの確認に使える検証サービスがホストされているリンクも含まれます。レシートをオフラインで検証することも可能ですが、定期的な鍵の同期が必要になりますし、オフライン検証では今のところ払い戻しや再発行などが上手く扱えません。デフォルトでは、レシートはアプリの manifest に記載の installs_allowed_from パラメータのストア URL のいずれかにのみ許可されています。開発者としてあなたは各マーケットプレイスと明示的に支払いの関係を作り、アプリを売ったと主張できるサイトを制限できます。誰がアプリのレシートを提供できるかというホワイトリストとして機能します。クライアントサイド JavaScript はゆるい性質があるので、サーバサイド (つまり、アプリのサーバで) でレシートを検証することでよりしっかりと制御できるようになります。
Firefox Marketplace の課金アプリはまだ完全に有効になっていませんが、間もなくです。今のうちにレシート確認をアプリに統合していただければ、アプリの登録フローが課金をサポートする時に備えられます。
詐欺防止
だれもが Web でアプリを販売できるようにすることは、Mozilla の Opwn Web アプリのビジョンにおいてきわめて重大です。しかしながら、(DRM なしで) アプリを完全に保護しながらレシートを分散化させることは困難なことです。現時点ではユーザが課金アプリにアクセスできるように自身のクライアントに対して行える、DNS プロキシなどの攻撃がありますが、少し例を挙げれば、CSP, CORS や HSTS といったもので緩和できます。今日の iOS や Android の課金アプリの状況も 大差はありません。マーケットプレイスのホワイトリストをより効果的に出来るよう現在すすめられている取り組みもありますし、Mozilla ではより多くの開発者とより多くのストアが参加するようシステムを改善していくつもりです。署名付きの パッケージ型アプリ へと切り替えればもう一つの資産保護レイヤーを提供できますが、これは権限の問題を解決するために設計されたものです。
例によって、問題があればバグを報告してください!アプリプラットフォームのバグであれば Core (component: DOM: Apps) あるいは Marketplace (component: Payments/Refunds) へと報告してください。
Mozilla Mission
Mozilla Missionの訳です。
Mozilla Japan には直接対応するページ自体がないようですが、何かの参考になれば、ということで。
私達はより良いインターネットを築いていきます
私達の使命は、オープンであること、改革、そして Web 上の機会を推進していくことです。
Mozilla は、誇りを持って、ウェブの力を人々の手に保つことに寄与する非営利の組織です。私達は世界中のユーザ、貢献者、開発者からなるコミュニティであり、あなたの味方として改革のために働いています。Firefox または他の Mozilla 製品を使うことで、あなたもそのコミュニティの一部となり、より明るいウェブの未来を築く手助けをすることになります。
私達が追い求める使命の価値と、それを追い求める際の原則についてさらに知りたい場合は、Mozilla 憲章 をご覧ください。
My Mozilla Experience
原文はこちら https://blog.mozilla.org/community/2013/04/18/my-mozilla-experience/
(投稿日、2013年4月18日)
…Summit 2013 のボランティア貢献者、 Ramona Costandel からのブログへのゲスト投稿です。
マウンテンビューにあるMozilla のオフィスへ行き、従業員の方達と話をし、会社、文化、そしてそこで働きたがる理由について、いくつかの質問をする機会を得ました。私は、ここシリコンバレーでは、すべてのものごとが、読者の方が想像しているであろうことと違うということを学び、そして、そこに示されたやりかたを見て、もっと知りたくなりました。ほぼ同じ時期に、私はUCSCで学んでいる人事管理ブログラムの経験/訓練となるボランティアの仕事を探し始めまていました。足しになるのかどうかはわかりませんでしたが、私は試してみることにしました。
- もし尋ねる/頼むことをしなければ、答えは常にNoである。Mozilla のコミュニティの一部になり、ウェブのより良い未来を築くことに貢献してきた偉大な人々に会うチャンスがあるとは、考えたこともありませんでした。しかし、両方とも難しいことではなかったのです。私がしなければならなかったことはまず尋ねてみることだったのです!私は Mozilla のウェブサイトを開き、Mozilla は私が送った考えを読みました。「ボランティア」タブの下に、「手助けをしたいですか(“Want to help?”)」という質問があります。私は、私自身が何者であるか短い文章を書き、「手伝えることはありますか?(“Can I help?”)」と書き添えて送りました。
-
迅速であることの重要性。2回めに、私がMozilla によって嬉しい驚きをもらったのは、私の方から連絡して数日のうちに返事をもらったことです!それは、Mozilla が本当に人々と共に、人々のために働いているという素晴らしい感触でした。彼らのミッションステートメントは空虚なただの文章ではなかったのです。私にとっては、Mozilla プロジェクトへの貢献が素晴らしい体験になるに違いないという確信になりました。
-
時には研究というのは滑りやすい坂のようなもの。私は、私が働くべきプロジェクトを受け取り、とても興奮していました!私はすぐに研究にとりかかり、間もなくそこにはできることがとてもたくさんあることに気づきました。とても多くの興味深く、クリエイティブなアイディアがあり、それらのほとんどは Mozilla の価値に沿うものでした。私は、さらに探し出したいと思い、私が、プロジェクトについて考えられる限りのアイディアについて考察していることを確かめたいと思いました。私はまた、私が探しているものだけが私のプロジェクトに関係するのではなく、私が読んだものすべてが「私のプロジェクトにどう適用できるか?」というレンズを通して関連していることに気づきました。そのような状況にあるということは多大な情報に接するこどかできるという意味ですごいことですが、一方で、過大であり時間の浪費にもなり得ます。それが、次のポイントにつながります:
-
1つのプロジェクトで働いているときは、(〆切ではなく)あなた自身のタイムリミットを設けるべきだ。私は、私のプロジェクトのために使えるとても多くの情報があることに気づいたので、さらに時間を使っても良いかと尋ねました。答えは yes でした。それは学習の過程であり、必要なだけ時間を使って良いと言われました。私はすごいことだと感じ、感謝し、偉大なチームで働いているという確信を新たにしました。しかし、すぐにこの「贈り物」は呪いとなったのです─それが意味することは、私は「滑りやすい坂の上の研究」に好きなだけ足を突っ込むことができるということだったのです。誰かにあなたの進捗をチェックし、あなたがどれだけの割り当て時間を残しているか、または終わるであろう日付を推測できるのかを気づかせてもらえるよう努めてください、本当の〆切が来る前に。
ついに、私は新しいアイディアを探すことをやめて、見つけたものに集中することにしました。私はその研究をほとんど終えており、私のチームのメンバーにプレゼンテーションする準備をしていました。正直に言って、プレゼンテーションについて考えると神経が擦り減るものですが、私は公衆の前で話をするという「山」について克服するよう努めており、これは良い練習になるはずです。私は、希望に満ち、また理解しようとする姿勢を持ち、私がミスをしたときには学ぶお手本としたいと思うような素晴らしい人々と共に働いたことを覚えていたいと思います。
チームの一員として、私は効果的に学び、本当にグループワークを楽しみました、しかし、私の訓練と知識から、人々と働くということにはまだまだ多くの変数が係わっているということがわかりました。仕事の場、経験、報酬の他にも考慮に入れなければいけないことは数多くあります。いくつかの典型例はありますし、またそれをどう扱うかについての文献も数多くありますが、実際の事態に直面してみると、まったく異なることがあるのです。これは、Mozilla のボランティアとして 2013サミットで私がさらに学ぶことを楽しみにしていることです。
ありがとう Mozilla!
Contributor contribution – Summit 2013
原文はこちら https://blog.mozilla.org/community/2013/04/26/contributor-contribution-summit-2013/
(投稿者 mdouglass, 投稿日 2013年4月26日)
こんにちは、私の名前は Ramona で、Mozillian です! 現在、私はUCSCで人事管理プログラムを受講しており、Mozilla では People チームに所属しています。私が強い関心を持っているのは、人間について、彼らがどうつながるのか、コミュニケーションを取るのか、またそのことが彼らの職場における成功にどのような影響を及ぼすのか、です。
私のプレゼンテーションを始める前に、ある日、偉大なるWebで見つけた引用を紹介したいと思います:「ボランティアは報酬を受け取らない、価値がないからではなく、値段がつけられないからだ」
Mozilla のボランティアの1人として、私は最近の2週間をツールとプロセスの研究に費しました。2013年の Mozilla サミットで、地理的な離散により発生する問題に対処するために使うことができるかもしれないと思ったのです。これらの発見はもしかすると世界中で Mozilla の従業員、ボランティアの双方にとって助けとなり、お互いがより深くつながっていると感じられるかもしれません。Ramona の研究については、こちらからもっと読むか、 ビデオ ドキュメンタリー [1] [2] を閲覧することができます。
We’ll always have Paris – Summit 2013
原文はこちら https://blog.mozilla.org/community/2013/04/26/well-always-have-paris-summit-2013/
(投稿者 mdouglass, 投稿日 2013年4月26日)
僕達にはパリの思い出があるじゃないか (映画 カサブランカより)
今週は、オフサイトで、驚異的な Mozilla People チームと過ごしました。常に、私の部隊と実際の時間を過ごしたのです(彼らの目玉を覗き込みながら)。 多くの Mozillians のように、私は普段、主にIRC(#peoplepeople)を通して共に働いている人々と連絡をとり、Eメール、その他のビデオソフトも使っています。そんなわけで、これは良い経験でした。
私にとって、それほどうまくいっていないのが、パリの件です。以前の投稿でも書いたとおり、パリはとても人気のある都市である ─10月には特に─ 2013年の10月4日〜6日の週末には特別に─ことがわかりました。この経験はサミットにとってとても重要で、目下のところ Mozilla にふさわしい場所(ホテルなど、イベントが開催できるところ)を見つけることができず、他の場所を探しています。サミットの場所として探しているのは、Mozillarian たちがつながっていると感じられる場所です。私達のすべてのために、ハックし、つながり、分け合い、交換し、成果を見せ、食べ、飲み、お互いに楽しめる場所であって欲しいと思います。そして、もしパリで私達の考えるような催しができないとしたら、他のどこで開催できるでしょうか?
カリフォルニアのベイエリアの会場としては、サンタ クララ マリオット がふさわしいと思います。(通りの向かいにアミューズメントパークがあります!)
この話題について何かわかり次第みなさんにお伝えするため、来週も投稿を続けます。サミット計画部会は引き続きパリで開催される予定です。
質問は、IRC のチャネル #summit2013 まで。 Mardi