firefox osを盛り上げてみなイカ?
firefoxのlinux版の黒歴史のお陰か 全くfirefox osに興味が湧きません というわけでfirefox osのいい話を聞かせて xperia eで通信できる様になったら起こしてくれ。 Xperia E、俺もポチッた スマホ板に該当スレがなさげなのがオツやね ZTE製スマートフォンに「異例のバックドア」の疑い - 米国で問題に ttp://wirelesswire.jp/Watching_World/201205221253.html ZTE Score M デバイス上の Android 用 ZTE sync_agent プログラムにおける権限を取得される脆弱性 ttp://jvndb.jvn.jp/ja/contents/2012/JVNDB-2012-002572.html 中国通信機器2社は「安全保障上の脅威」、米下院情報委の報告書草案 ttp://www.afpbb.com/article/politics/2906549/9652941 華為技術(Huawei)製品に中国政府によるスパイ機能が仕組まれるか ttp://finalvent.cocolog-nifty.com/fareastblog/2012/10/huawei-4fcb.html 確かにゲソー こっちを使うことになった。 Open Mobile OS 【Firefox Sailfish Ubuntu Tizen】 http://engawa.2ch.net/test/read.cgi/linux/1368290081/ Flameは国内だといくらするんだろうな 輸入物の方が得だとかいうのは勘弁 ご存知の通り、Firefox 19以降にはPDFビューアが付属しています。 FxOS 1.3はFx28のGeckoを使っているのでPDFを見れるのでは?と 思って試してみました。 Fxに付属のPDFビューアは「pdf.js」というWebアプリで、 下記からデモを試せます。 http://mozilla.github.io/pdf.js/ FxOS 1.3のシミュレータでBrowserを立ち上げ、 上記のデモを試してみたところ、見事、PDFの表示ができました。 ところが、他のサイトのPDFを表示しようとするとFxで見慣れた、 ファイルの処理方法を選択するダイアログが表示されます。 しかも、シミュレータのウインドウの外側で。 1.4のシミュレータではダイアログこそ出てこないものの、 PDFがBrowser内で表示されず、ダウンロードされてしまいます。 まだ上手く動かないのかなぁと思っていたところに、 WebActivityの紹介記事を目にしました。 https://dev.mozilla.jp/2013/01/introducing-web-activities/ 紹介記事を見る限り、WebActivityというのはWindowsの関連付けとか、 DDEに似た何かっぽい感じです。 紹介記事ではWebActivityの仕組みを使ってCameraアプリを呼び出し、 カメラで撮影された画像を取得する例が示されています。 キーになるのはMozActivityというインタフェース。 こいつのコンストラクタに下記のようなオブジェクトを渡してやると 対応するハンドラが起動するようです。 { name: 'pick', data: { type: ['image/png', 'image/jpg', 'image/jpeg'] } } ここで、nameが「何をしたいか」を意味している模様。 Windowの関連付けだとopenとかeditとかのアレ。 そしてdata.typeはあからさまにMIMEタイプ。 つまり、とあるタイプのデータに、とある操作をしたいよと FxOSにお願いすると、しかるべきアプリを呼んで頂ける、と。 ということは、WebActivityを使ってpdf.jsを呼べばいいんじゃね と思いついちゃったわけです。 思いついたら止まらない。 FxOS先生にお願いする前に、まずはGoogle先生に聞いてみます。 キーワードは「WebActivity」。 公式のAPIリファレンス的なページが引っかかりました。 https://developer.mozilla.org/en-US/docs/Web/API/Web_Activities うぁ、英語だ・・・ とりあえず、ページ内を「PDF」で検索。 あった。 どうやら nameにview、data.typeにapplication/pdfを 指定してやればよさげ。まんまですな。 でも、表示するPDFを指定する方法が書いてない。 紹介記事では、「URLを開く」の場合、data.urlに対象のURLを 文字列で指定してる。たぶん、これでBrowerが呼ばれるんだろう。 Videoもurlを指定するっぽいし、とりあえずurlで試してみよう。 ということで、Fx33(beta)のWebIDEを起動し、 新規作成ウィザードでアプリのスケルトンを作る。楽だ。 WebIDEが生成するスケルトンはprivilegedなアプリになります。 特権アプリって奴です。 本来はマーケットの登録審査をパスし、 マーケットからインスコすると特権がもらえるらしいですが、 今回はシミュレータを使うので、その辺はスルーっぽいです。 (正確には、マーケットの審査+ユーザの許可で特権付与) FxOSでアプリを起動したときに読み込まれるHTMLは manifest.webappのlaunch_pathに書いてあります。 デフォルトでは /index.html です。まんまです。 WebIDEでプロジェクトを開くと、ファイルの一式が ツリー表示されますが、そのルートにあります。 特権アプリはHTMLの中にスクリプトを書いちゃダメらしく、 スケルトンではエントリポイントになるjsが用意されています。 /js/app.js 大外にはjs使いにはおなじみのおまじないが付いてます。 start()がエントリポイントになってるっぽいので、 ここに追記していくことにしました。 いきなり冷水に飛び込むと心臓麻痺を起こすので、 まずは温め(と思われる)Browserからいってみました。 紹介記事のまんまです。 というか、紹介記事より簡単だった。 紹介記事ではカメラを起動した後、撮影した画像を取得するために イベントハンドラを使っています。XHR風味です。 一方、Browserの場合、起動しておしまいなのでハンドラの登録とか、 多分不要です。一応、つけときましたが。 ぶっちゃけ、MozActivityをnewするだけ。 さて、いよいよ、本題です。 といっても、違いはdata.typeをapplication/pdfにして、 data.urlをPDFのURLに変えるだけ。 どきどきしつつ、アプリを起動・・・、おお、表示された。 ていうか、字がちっちぇwww (拡大できます) なんだ簡単じゃん。<びびってたくせに とりあえず、当初の目的は達成されたわけですが、 人間の欲望には限りがありません。 これでウェブのPDFは見れるけど、SDカードとかに保存したPDFも 見れたらいいよねとふと思ってしまいました。 ちら見した感じでは、SDカードに保存したファイルは DeviceStorage APIという奴でFileの形で取れるっぽいです。 FileというのはHTMLのinput要素で指定されるあれです。 Fileの中身を読むのに使うのがFileReaderです。まんまです。 FileReaderにはreadAsDataURL()なるメソッドがあります。 data URLはデータをまるっとbase64してURI形式にした文字列。 曲がりなりにもURLなら、こいつを渡して表示させられるかも。 思いついたら止まりません。 とはいえ、DeviceStorage APIの勉強をするのもメンドイので、 馴染み深いXHRで代用してしまいます。 XHRことXMLHttpRequestはAjaxの中核コンポーネントっていうか、 そのものなもので、XMLとかJSONとかHTTPで取得するのに使います。 歴史的経緯で頭にXMLがついていますが、HTTPなら何でも取れます。 単純にHTTPのクライアントです。XMLとか無視しておkです。 XHRは便利なんですが、jsのダウンロード元と同じドメインとしか 通信できません。サーバが応答を返してもGeckoがブロックしやがります。 サーバー側でCORSに対応してくれれば良いんですが、そんなん無理。 2ちゃんのdatが採りたかったら、ひろゆきに頼むのかよって感じです。 使えねーす。これが Same Origin Policy という奴です。 ちなみにこれ、クライアント側のセキュリティとはほぼ無関係と思われ。 攻撃側のサーバを開いておけば通信できちゃうので。 たぶん、サービス提供者側の勝手に使うなという主張に沿った感じの 何かではないかと思われます。ああ、不自由。 ここまでが普通のWebアプリの話。 FxOSではアプリにsystemXHRという特権を与えてやれば ドメインの壁を抜けられます。 アプリ側ではXHRのコンストラクタに{ mozSystem : true }を渡します。 これでどこでもアクセスし放題。2ちゃんのdatも取れます。 ユーザーの立場の時は、アプリにsystemXHRを要求されたら、 それ本当に必要?とちょっと考えた方が無難です。多分。 XHRは超有名なので使い方は端折りますが、 今回は、send()の前に responseType = 'blob' とやって、 onsuccess で受け取る response をBlobにします。 BlobはFileの汎化で、FileReaderはBlobもFileと同じように読めます。 処理の流れは、XHR→FileReader→MozActivityです。 やってみたら上手くいきました。さくっと。 これら3つが3つともXHR風味なのが素敵なところですが、 それ即ちコールバック使いまくりということなので、 jsに慣れてない人が見るとうんざりかもしれません。 ここまできてなんですが、この方法ではウェブのPDFしかみれません。 XHRの部分をDeviceStorage APIに置き換える必要があります。 あと一歩ですが、眠いのでここまでにします。ごめんね。 DeviceStorage APIを使うようにしてみした。 http://fast-uploader.com/file/6966405832386/ シミュレータでは「fake-sdcard」というフォルダが使われます。 詳しくは上記zipの中にあるREADME_ja.mdを参照ください。 そんな分かりきった事を長々やってんなよ チラシの裏に書いてろチクショウ Win7のシミュレータではWebGLが動かないみたいだな。 getContextがnullを返す。 すっかりはまってしまった。 https://bugzilla.mozilla.org/show_bug.cgi?id=966368 Win7(x64)でもブラウザのFirefoxならWebGLが使えるもんだから、 シミュレータの問題だと確信を持つまで時間くった。 Geckoのビルドオプションとか違んだろうけど、そこまで追いきれんわ。 Firefox OSの仮想キーボード(VKB)にはフリック入力の仕組みがないので、 現状唯一の日本語IMEである jskanji はガラケー方式になっていて ちょっと残念な感じです。 一方、英語入力ではアクセント記号付きの文字を簡単に入力できるように、 VKBのキーを長押しすると入力候補がポップアップするようになっています。 http://i.imgur.com/uedKHkd.png この仕組みを流用して、jskanji を改造してみました。 http://i.imgur.com/9GvlQMX.png 改造といっても、大したことはしていません。 まず、長押しで表示される入力候補文字を定義します。 修正するのは、Keyboardアプリの js/layout/jp-kanji.js です。 alt というプロパティを追加するだけです。 英語入力用の en.js からパクりました。 次に、長押し入力された文字の処理をIMEに追加します。 修正するのは、js/imes/jskanji/jskanji.js です。 VKBのキーが押されると、IMEのclick()という関数が呼び出され、 click()→qNext()→handleNormalKey()と順に呼び出されています。 入力された文字は _inputBuf という配列に格納されます。 handleInputBuf()という関数から呼び出される queryDict()という関数で、 _inputBuf を入力として変換候補が選出されます。 ユーザーが変換候補を選択して未確の入力(の一部)を確定すると、 選択した文字列(漢字など)がinput要素に送られ、それとともに、 当該部分が _inputBuf から掃き出されます。 今回の改造はかな入力の部分だけで変換処理はそのまま流用できるので、 変更するのはhandleNormalKey()のみです。 handleNormalKey()はVKBで押されたキーに対応する文字を _inputBuf に 格納しています。 この際、前回入力されたキーと今回入力されたキーが同じ場合は、 _inputBuf の末尾の文字を50音の次の文字に変更します。 例えば、最初に「あ」が入力されると、_inputBuf には「あ」が格納され、 続いて再度「あ」が入力されると _inputBuf に格納されていた「あ」が 「い」に変化するといった具合です。 一方、最初が「あ」で次が「か」なら _inputBuf は「あか」になります。 長押しで入力された文字は単純に _inputBuf の末尾に追加すれば良いの ですが、「あ」の列(あ、か、さ、・・・)についてはガラケー方式と 同様の処理になるように細工しています。 これは、IMEに渡されるのは入力された文字だけで、それが単純に タップで入力されたのか、長押しで入力されたのかの区別がつかない ためです。このため、入力文字に対応するキートップの文字を 逆引きするためのテーブルを追加して既存の処理とのつじつまを 合わせています。 この辺の処理はガラケー方式での入力は不要と割り切れば捨てられますが、 長押しよりガラケー打ちの方が早く入力できる人がいそうな予感が したので残してあります。 やっておいてなんですが、やっぱり、長押しではフリック入力には 遠く及ばない感じです。 シミュレータ用のファイルを上げておきます。 辞書(dict.json)を含む jskanji 関連一式 (FxOS 1.4 Simulator用) http://fast-uploader.com/file/6966844076279/ 辞書(dict.json)を含む jskanji 関連一式 (FxOS 2.0 Simulator用) http://fast-uploader.com/file/6966844223334/ diff (FxOS 1.4 Simulator用) UTF-8、BOMなし、CR+LF http://fast-uploader.com/file/6966844346525/ diff (FxOS 2.0 Simulator用) UTF-8、BOMなし、CR+LF http://fast-uploader.com/file/6966844367179/ Keyboardアプリ関連のTipsを1つ。 FxOSアプリのjsでconsole.log()を呼ぶと引数で渡した文字列が Webコンソールに表示されます。 これを使うとprintfデバッグのようなことができて便利です。 Webコンソールを使うにはまずデバッグ対象のアプリに アタッチする必要があります。 WebIDEで普通のアプリをデバッグする場合は、 WebIDEからアプリを起動後、画面上部中央にあるコンセントの アイコンをクリックすればアプリのデバッグが開始し、 Webコンソールが開きます。 さて、Keyboard関連の場合はというと、シミュレータの場合、 インストール済みアプリの一覧が表示できるので、 その中から「System」を選びます。 これで通常のアプリと同様にデバッグができるようになります。 「Build-in Keyboard」なんていうのもありますが、 そっちはキーボードの設定画面なので、console.log()で IMEの処理を追いかけたい場合は「System」を選ぶ必要があります。 (最初、これが分からなくてちょっと時間をくった) なお、実機の場合、デフォルトではSystemなどの組み込みアプリは 一覧に出てこないようですが、端末内の定義ファイルを書き換えれば シミュレータ同様にデバッグできるようです。 osをアッブデートしたら、起動でこけるようになってしまった。 iWnn試用期間切れちゃったけど、Flame使ってる人はどうしているの? Firefoxの超使い難い所は pinタブ上から右側タブが消せない 超マヌケ仕様ではないか? http://i.imgur.com/MylMOgX.png Mozillaが「Firefox OSのスマートフォン向け展開を終了」と発表、リリースからわずか2年でFirefox OSスマホは消滅することに - GIGAZINE http://gigazine.net/news/20151209-mozilla-stop-firefox-os/ Firefox OSの主戦場は"Connected Devices"へ 「開発中止」はデマ - Mozilla Flux http://rockridge.hatenablog.com/entry/2015/12/09/233340 https://developer.mozilla.org/ja/docs/Mozilla/B2G_OS >Mozilla が商用 Firefox OS スマートフォンプログラムを終了したため、Firefox OS プロジェクトのスマートフォン部分に関しては、Mozilla のボランティアコミュニティによって完全に維持され、B2G OS とブランドづけられました。 誰でも簡単にパソコン1台で稼げる方法など 参考までに、 ⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。 グーグル検索⇒『宮本のゴウリエセレレ』 90JQRQUCH7 僕の知り合いの知り合いができた副業情報ドットコム 関心がある人だけ見てください。 グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 37C2R FOR-NEXT 10億回ループまとめw追加&補正 Linux版Firefox60.0.2更新記念編 JavaScript(Core i7 8700K、IE11)....................................... 1.271秒 [Win10p64] + (*3) JavaScript(Pentium Gold G5400、Firefox60.0.2) ..... 1.308秒 [Linux....64] # New ! (*1) JavaScript(Core i7 8700K、edge)........................................1.329秒 [Win10p64] + (*4) JavaScript(Core i7 4770K、IE11)....................................... 1.581秒 [Win10. 64] + JavaScript(Pentium Gold G5400、IE11)......................... 1.589秒 [Win10. 64] JavaScript(Pentium Gold G5400、edge)..........................1.613秒 [Win10. 64] JavaScript(Core i7 4770K、edge)........................................2.102秒 [Win10. 64] + JavaScript(Celeron G1820、IE11) .................................... 2.272秒 [Win10. 64] JavaScript(Celeron G1820、edge)..................................... 2.992秒 [Win10. 64] JavaScript(Atom x5-z8300、IE11) ................................... 8.372秒 [Win10. 64] (*2) JavaScript(Atom x5-z8300、edge).................................... 9.070秒 [Win10. 64] (*2) JavaScript(Tegra3 1.3GHz、Chrome).............................36.480秒 [Nexus7.....] JavaScript(Cortex-A9 800MHz、Safari).......................36.521秒 [iPhone4S] JavaScript(PS4Slim、Netfront) .................................... 130.0. . 秒 [PS4 .] (*5) # クリーンインストールによる再計測、10秒未満の項目については10回計測の平均値 + 8700K、4770Kはturbo boostあり (*1) Linux Mint 18.3 Cinnamon 64bit版 (*2) ドンキ2in1 (*3) IE11 - Internet Explorer 11 (*4) edge - Microsoft Edge (*5) PlayStation4、CPUリソース割り当てが極端に少ないか、サブCPU担当と予想される [Win10p64] Windows10pro 64bit版 [Win10. 64] Windows10 64bit版 [Linux....64] Linux Mint 18.3 Cinnamon 64bit版 [PS4 .] PlayStation4 [Nexus7.....] Nexus7-2012 [iPhone4S] iPhone4S これってパソコンにインストールできますか?Andorid-x86 みたいに flame向けの最新B2G OSビルドしてみたいが、flameが手に入らない 好きに情報を抜かせないブラウザを排斥する流れに見えていたが llvm からも排除され始まったのか?w read.cgi ver 07.5.0 2024/04/24 Walang Kapalit ★ | Donguri System Team 5ちゃんねる