狠狠撸

狠狠撸Share a Scribd company logo
Firefox Mobile for Android
         Internals

       Makoto Kato
自己紹介

? 名前: 加藤 誠 / @makoto_kato
? Mozilla Committer
 ? Geckoの開発が始まった頃くらいからコードを書
   き始める
   ?   初期のI18N関係はNetscapeの社員+自分のコード

 ? いろいろあって、Mozillaから離れる
 ? いろいろが終了したんで、Mozillaのコードをまた
   書き始める
 ? 気付いたらMozilla Japan
MOBILE
About Fennec

? Fennec = モバイル版Firefoxのコードネーム
? XULRunner (Gecko) + Mobile UI
? UIをタッチデバイス用に最適化しもの
? Gecko (レンダリングエンジン)はそのまま
? UIはFirefox同様にXUL+JavaScriptで作成
Fennec

? そもそもの始まりは、NokiaのInternet Tablet
  N770 (Maemo)
Maemo Browser

? 初代Internet TabletはOperaを採用
? 2世代目 (Nokia N800)から、Geckoベースの
  ブラウザを採用
? そこからMozilla独自のモバイル版の開発
MOBILE OS SHARE
Mobile OS Share by Web browsing
Mobile Browsers Share
May 2010 (netmarketshare.com)
ABOUT FENNEC
Firefox mobile for android internals
Concept

? Browsing without borders
 ? デスクトップ版と”同じ”レンダリングエンジン
 ? Full Web stack
   ?   HTML5/CSS3/SVG/WebGL

? モバイルのための機能
 ? Geo Location / Accelerometer / Touch
? 拡張機能
 ? モバイルでも同様にアドオンをサポート
Version History

? Version 1.0
 ? 2010年1月リリース
 ? Firefox 3.6ベース / Maemo only
? Version 1.1
 ? 2010年8月リリース
 ? Firefox 3.6ベース / Maemo only
? Version 4.0
 ? 2011年?月リリース
 ? Firefox 4.0ベース / Maemo / Android
対応OS

? Maemo 5 GTK+ or Qt (Nokia N900 only)
? Android
? MeeGo
 ? ハンドセット版には、QtバージョンのFennecが含
   まれる
Firefox mobile for android internals
Firefox mobile for android internals
Firefox mobile for android internals
Firefox mobile for android internals
Nightly build

? Nightlyは以下のURLからダウンロード
 ? http://ftp.mozilla.org/pub/mozilla.org/mobile/
   nightly/latest-mobile-trunk/
? 自動アップデートサポート
 ? Maemo (OSのパッケージマネージャ経由)
 ? Android
Web Stack

? モバイル版であっても、Web Stacksはデスク
  トップ版と同等
 ? HTML5
 ? Device API
  ?   GeoLocation

 ? CSS3
 ? SVG
 ? WebGL
Full Web Stack

? デスクトップ版とコードベースはまったく一緒
 ? デスクトップ版でサポートされているものは基本
   的にモバイル版でもサポート
? サポートが異なるものは以下の理由
 ? OSの違い
 ? プロセス分離(あとで話します)の影響
Canvas
Geo Location

? GPSのみ
? WiFiでの情報取得は現状未サポート
  (Android)
Workers
Web Fonts
CSS Transition

? 現状はちょっとスムーズではないけど
? https://developer.mozilla.org/samples/css
  ref/transitions/sample1/
SVG
WebGL
制限事項

? モバイル版ということではなくて、プロセス分
  離の影響
 ? HTML5 Forms
  ?   required属性
  ?   validation

 ? WebSocket
? モバイル的に無理かも
 ? Drag & Drop
? 正式版までにどうするかはまだ決まってない
Add-ons support

? Mobile版でも当然作成可能
? デスクトップ版と作成方法は同じ
? まったく同じでは動かない
// in Firefox
alert(gBrowser.contentDocument.title);

// in Fennec
alert(Browser.selectedBrowser.contentDocument.title);

? 開発にはエミュレータを使うのを推奨
INTERNALS
JavaScript / SpiderMonkey

? JITは当然搭載
 ? TraceMonkey
 ? JaegerMonkey
? デスクトップ版と同等
? 問題がちょっとあって、Beta 1ではSamsung
  Galaxy SではJIT無効
TraceMonkey
? Tracing + NanoJIT=TraceMonkey
? Tracing
 ? 実行回数が多いポイント(=ホットスポット)に対し
   て効率的なコードを吐く手法
   ?   Android 2.2のDalvikVMとかも同様のパターン
 ? JavaScriptのバイトコードからLIRを生成する
? NanoJIT
 ? LIRをネイティブコードにコンパイルするもの
 ? Flash (Action Script 3)でも利用している
   ?   昔Tamarinというプロジェクトがあったんだけど、それを捨て
       て、彼らもMozilla製のコンパイラを利用
JaegerMonkey

? TraceMonkeyの弱点を補うもの
? TraceMonkeyはネイティブコードを生成でき
  れば、現時点で最速のコードを叩きだす
 ? 出来ない場合はインタプリタで実行しなおすので、
   超遅い
JaegerMonkey

? インタプリタで実行せずにすべてJIT化する
 ? TraceMonkeyでJIT不可なケースを拾うのが目的
? アセンブラからネイティブコードする部分のみ
  JavaScriptCore (WebKit)のコードを利用
 ? どうアセンブラを生成するかについては、独自実
   装
? インラインキャッシュ
 ? V8で先に採用している、動的に型を決める言語で
   使われるテクニック
その他

? YARR (from JavaScriptCore/WebKit)
 ? 正規表現ライブラリ
 ? Mobile 4.0 Beta1ではDisable
? FastDtoa (from V8)
 ? 数字と文字列の変換
? Compartments GC
 ? ガーベージコレクション
Electrolysis (e10s)

? プラグインプロセスの分離 (Firefox 3.6)
 ? プラグインのバグによるクラッシュの影響を少な
   くする
? コンテンツプロセスとブラウザプロセスの分離
  (Firefox Mobile 4)
 ? レスポンシビリティ向上のため
? 通信には、Chromiumのipcライブラリを利用
e10s on Android

? org.mozilla.fennecというDalvikVM上で動く
  ブラウザプロセス
? plugin-containerというコンテンツプロセス
 app_44    28117 18481 278064 60072 ffffffff afe0c9fc S org.mozilla.fennec
 app_44    28182 28117 113440 65136 ffffffff 8122f908 D
 /data/data/org.mozilla.fennec/plugin-container



? コンテンツプロセスをクラッシュしてもブラウ
  ザプロセスは保護される
クラッシュ例
ANDROID VERSION
Android Application

? AndroidはIntentなどのUIサービスにアクセス
  するために、Java(DalvikVM)を使わないとい
  けない(いけなかった)
 ? アプリケーションはJavaで書く必要がある
? Firefox/Geckoの土台はC++で書かれている
 ? だから移植無理
? 2009年の6月にNDKリリース
 ? C++で書かれたコードを動かす方法が提供される
 ? 引き続きJavaは必要だけど
NDK

? 開発初期は、NDKへパッチを当てていた
 ? というか、使うヘッダによってはビルド出来ない
   物だった
? だんだんパッチだけでは対処不可
? 現在はGoogleのNDKを実は利用していない
NDK

? 現在はCrystaXのカスタム版を使用
 ? http://www.crystax.net/android/ndk.php
? Mozillaのコードベースはgcc4が基本
  (WindowsとSolaris以外)
? 標準C++ライブラリがNDKというか、Bonic
  libcだと中途半端すぎ
 ? ポーティングには実際向かない
Binaries

? サイズを節約するために、Thumb2を利用
 ? だからエミュレータ上では動作しない
? Android OS上のライブラリをほとんど利用し
  ていないので、パッケージサイズは非常に大き
  い
 ? nspr / nss / zlib / libbz2 / sqlite3 / freetype /
   libpng / libjpeg / cairo / etc
For DalvikVM

  ? Javaを使う部分はAndroidのDalvikVM/Java
    API (JNI)を使うためのラッパー
  ? Java使ってるのは、これだけ


-rw-r--r--   1   makoto   users    3907   Oct 8 13:04    AlertNotification.java
-rw-r--r--   1   makoto   users   18600   Oct 8 13:04    GeckoApp.java
-rw-r--r--   1   makoto   users   20783   Oct 8 13:04    GeckoAppShell.java
-rw-r--r--   1   makoto   users    7065   Aug 5 10:57    GeckoEvent.java
-rw-r--r--   1   makoto   users   17950   Aug 25 13:58   GeckoInputConnection.java
-rw-r--r--   1   makoto   users   10167   Oct 14 15:11   GeckoSurfaceView.java
Graphics Rendering

? レンダリングは、OpenGL ES 2 or 直接ビデ
  オメモリへの描画
 ? Skia (http://code.google.com/p/skia/) も使う
   方法もあったけど、結果として今の方法を採用
 ? OpenGL ESのフル機能は利用していない
? Cairo (GeckoやAdobe AIRで採用しているグ
  ラフィックライブラリ)でレンダリング結果の
  画像を生成して描画
Resources
? Firefox Mobile
 ? http://www.mozilla.com/en-US/mobile/
? How to build Android version
 ? https://wiki.mozilla.org/Mobile/Fennec/Androi
   d
? Firefox for mobile ideas Forum
 ? http://firefoxformobile.uservoice.com/forums/
   70211-firefox-for-mobile-ideas
? Extensions - e10s
 ? https://wiki.mozilla.org/Mobile/Fennec/Extens
   ions/Electrolysis
Any Question?

More Related Content

What's hot (20)

解説 Windows 10 May 2020 Update
解説 Windows 10 May 2020 Update解説 Windows 10 May 2020 Update
解説 Windows 10 May 2020 Update
Tomokazu Kizawa
?
2150117 infrastructure.nagoya
2150117 infrastructure.nagoya2150117 infrastructure.nagoya
2150117 infrastructure.nagoya
Hiroki Ito
?
スッと骋辞を取り入れる
スッと骋辞を取り入れるスッと骋辞を取り入れる
スッと骋辞を取り入れる
Yusuke Wada
?
その後のBash on windows
その後のBash on windowsその後のBash on windows
その後のBash on windows
Kazushi Kamegawa
?
痴补驳谤补苍迟と网元で开発环境を作ってみよう
痴补驳谤补苍迟と网元で开発环境を作ってみよう痴补驳谤补苍迟と网元で开発环境を作ってみよう
痴补驳谤补苍迟と网元で开発环境を作ってみよう
Takuma Morikawa
?
サーバー&インフラ勉強会 Vol.1 いとー
サーバー&インフラ勉強会 Vol.1 いとーサーバー&インフラ勉強会 Vol.1 いとー
サーバー&インフラ勉強会 Vol.1 いとー
krs_mizuno
?
Firefox 4 and Mobile
Firefox 4 and MobileFirefox 4 and Mobile
Firefox 4 and Mobile
Makoto Kato
?
痴补驳谤补苍迟+惫颈谤迟耻补濒产辞虫を使ってみよう
痴补驳谤补苍迟+惫颈谤迟耻补濒产辞虫を使ってみよう痴补驳谤补苍迟+惫颈谤迟耻补濒产辞虫を使ってみよう
痴补驳谤补苍迟+惫颈谤迟耻补濒产辞虫を使ってみよう
Kei IWASAKI
?
いつでもどこでも .NET
いつでもどこでも .NETいつでもどこでも .NET
いつでもどこでも .NET
Yuta Matsumura
?
滨诲肠蹿クラウト?て?始める构筑自动化
滨诲肠蹿クラウト?て?始める构筑自动化滨诲肠蹿クラウト?て?始める构筑自动化
滨诲肠蹿クラウト?て?始める构筑自动化
智之 大野
?
Native Extensionのビルドどうしてますか?
Native Extensionのビルドどうしてますか?Native Extensionのビルドどうしてますか?
Native Extensionのビルドどうしてますか?
Misao X
?
邪道闯别苍办颈苍蝉
邪道闯别苍办颈苍蝉邪道闯别苍办颈苍蝉
邪道闯别苍办颈苍蝉
hazisarashi
?
究极のディストリビューション鲍产耻苍迟耻
究极のディストリビューション鲍产耻苍迟耻究极のディストリビューション鲍产耻苍迟耻
究极のディストリビューション鲍产耻苍迟耻
Kenichi Takahashi
?
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
Yuta Matsumura
?
Rancherでwindows server上のコンテナを管理できるか
Rancherでwindows server上のコンテナを管理できるかRancherでwindows server上のコンテナを管理できるか
Rancherでwindows server上のコンテナを管理できるか
Takashi Kanai
?
厂飞颈蹿迟入门
厂飞颈蹿迟入门厂飞颈蹿迟入门
厂飞颈蹿迟入门
聡 中川
?
Windows Subsystem for Linux 2
Windows Subsystem for Linux 2Windows Subsystem for Linux 2
Windows Subsystem for Linux 2
Tomokazu Kizawa
?
さわってみよう Firefox OS in 大阪
さわってみよう Firefox OS in 大阪さわってみよう Firefox OS in 大阪
さわってみよう Firefox OS in 大阪
Honma Masashi
?
解説 Windows 10 May 2020 Update
解説 Windows 10 May 2020 Update解説 Windows 10 May 2020 Update
解説 Windows 10 May 2020 Update
Tomokazu Kizawa
?
2150117 infrastructure.nagoya
2150117 infrastructure.nagoya2150117 infrastructure.nagoya
2150117 infrastructure.nagoya
Hiroki Ito
?
スッと骋辞を取り入れる
スッと骋辞を取り入れるスッと骋辞を取り入れる
スッと骋辞を取り入れる
Yusuke Wada
?
痴补驳谤补苍迟と网元で开発环境を作ってみよう
痴补驳谤补苍迟と网元で开発环境を作ってみよう痴补驳谤补苍迟と网元で开発环境を作ってみよう
痴补驳谤补苍迟と网元で开発环境を作ってみよう
Takuma Morikawa
?
サーバー&インフラ勉強会 Vol.1 いとー
サーバー&インフラ勉強会 Vol.1 いとーサーバー&インフラ勉強会 Vol.1 いとー
サーバー&インフラ勉強会 Vol.1 いとー
krs_mizuno
?
Firefox 4 and Mobile
Firefox 4 and MobileFirefox 4 and Mobile
Firefox 4 and Mobile
Makoto Kato
?
痴补驳谤补苍迟+惫颈谤迟耻补濒产辞虫を使ってみよう
痴补驳谤补苍迟+惫颈谤迟耻补濒产辞虫を使ってみよう痴补驳谤补苍迟+惫颈谤迟耻补濒产辞虫を使ってみよう
痴补驳谤补苍迟+惫颈谤迟耻补濒产辞虫を使ってみよう
Kei IWASAKI
?
いつでもどこでも .NET
いつでもどこでも .NETいつでもどこでも .NET
いつでもどこでも .NET
Yuta Matsumura
?
滨诲肠蹿クラウト?て?始める构筑自动化
滨诲肠蹿クラウト?て?始める构筑自动化滨诲肠蹿クラウト?て?始める构筑自动化
滨诲肠蹿クラウト?て?始める构筑自动化
智之 大野
?
Native Extensionのビルドどうしてますか?
Native Extensionのビルドどうしてますか?Native Extensionのビルドどうしてますか?
Native Extensionのビルドどうしてますか?
Misao X
?
邪道闯别苍办颈苍蝉
邪道闯别苍办颈苍蝉邪道闯别苍办颈苍蝉
邪道闯别苍办颈苍蝉
hazisarashi
?
究极のディストリビューション鲍产耻苍迟耻
究极のディストリビューション鲍产耻苍迟耻究极のディストリビューション鲍产耻苍迟耻
究极のディストリビューション鲍产耻苍迟耻
Kenichi Takahashi
?
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
Yuta Matsumura
?
Rancherでwindows server上のコンテナを管理できるか
Rancherでwindows server上のコンテナを管理できるかRancherでwindows server上のコンテナを管理できるか
Rancherでwindows server上のコンテナを管理できるか
Takashi Kanai
?
厂飞颈蹿迟入门
厂飞颈蹿迟入门厂飞颈蹿迟入门
厂飞颈蹿迟入门
聡 中川
?
Windows Subsystem for Linux 2
Windows Subsystem for Linux 2Windows Subsystem for Linux 2
Windows Subsystem for Linux 2
Tomokazu Kizawa
?
さわってみよう Firefox OS in 大阪
さわってみよう Firefox OS in 大阪さわってみよう Firefox OS in 大阪
さわってみよう Firefox OS in 大阪
Honma Masashi
?

Viewers also liked (8)

Raindrop
RaindropRaindrop
Raindrop
Makoto Kato
?
Mobile Web
Mobile WebMobile Web
Mobile Web
Makoto Kato
?
惭辞锄颈濒濒补のビルドインフラ
惭辞锄颈濒濒补のビルドインフラ惭辞锄颈濒濒补のビルドインフラ
惭辞锄颈濒濒补のビルドインフラ
Makoto Kato
?
别10蝉とアプリ间通信
别10蝉とアプリ间通信别10蝉とアプリ间通信
别10蝉とアプリ间通信
Makoto Kato
?
Active scripting
Active scriptingActive scripting
Active scripting
Makoto Kato
?
础奥厂で骋笔鲍も安く大量に使い倒せ
础奥厂で骋笔鲍も安く大量に使い倒せ 础奥厂で骋笔鲍も安く大量に使い倒せ
础奥厂で骋笔鲍も安く大量に使い倒せ
Yasuhiro Matsuo
?
惭辞锄颈濒濒补のビルドインフラ
惭辞锄颈濒濒补のビルドインフラ惭辞锄颈濒濒补のビルドインフラ
惭辞锄颈濒濒补のビルドインフラ
Makoto Kato
?
别10蝉とアプリ间通信
别10蝉とアプリ间通信别10蝉とアプリ间通信
别10蝉とアプリ间通信
Makoto Kato
?
础奥厂で骋笔鲍も安く大量に使い倒せ
础奥厂で骋笔鲍も安く大量に使い倒せ 础奥厂で骋笔鲍も安く大量に使い倒せ
础奥厂で骋笔鲍も安く大量に使い倒せ
Yasuhiro Matsuo
?

Similar to Firefox mobile for android internals (20)

Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
dynamis
?
贵颈谤别蹿辞虫と惭辞锄颈濒濒补での厂痴骋の取り组み
贵颈谤别蹿辞虫と惭辞锄颈濒濒补での厂痴骋の取り组み贵颈谤别蹿辞虫と惭辞锄颈濒濒补での厂痴骋の取り组み
贵颈谤别蹿辞虫と惭辞锄颈濒濒补での厂痴骋の取り组み
Makoto Kato
?
.NET vNext
.NET vNext.NET vNext
.NET vNext
信之 岩永
?
笔丑辞苍别骋补辫で奥别产アプリをスマホアプリ化
笔丑辞苍别骋补辫で奥别产アプリをスマホアプリ化笔丑辞苍别骋补辫で奥别产アプリをスマホアプリ化
笔丑辞苍别骋补辫で奥别产アプリをスマホアプリ化
Takashi Okamoto
?
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
Takafumi Ikeda
?
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
Masakazu Muraoka
?
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platform
Toru Yamaguchi
?
20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward
Naoki Shimizu
?
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
Unity Technologies Japan K.K.
?
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
Unite2017Tokyo
?
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
Tetsuyuki Kobayashi
?
改めて C# でできることを振り返る
改めて C# でできることを振り返る改めて C# でできることを振り返る
改めて C# でできることを振り返る
Yuta Matsumura
?
Web os最新動向20130209
Web os最新動向20130209Web os最新動向20130209
Web os最新動向20130209
Akira Sasaki
?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Yuya Yamaki
?
Electron early 2019
Electron early 2019Electron early 2019
Electron early 2019
Masahiro Kondoh
?
Opa - Cloud Language
Opa - Cloud LanguageOpa - Cloud Language
Opa - Cloud Language
Tozo Tanaka
?
全部入り!奥骋笔で高速闯补惫补厂肠谤颈辫迟+贬惭尝5体験
全部入り!奥骋笔で高速闯补惫补厂肠谤颈辫迟+贬惭尝5体験全部入り!奥骋笔で高速闯补惫补厂肠谤颈辫迟+贬惭尝5体験
全部入り!奥骋笔で高速闯补惫补厂肠谤颈辫迟+贬惭尝5体験
AdvancedTechNight
?
Firefox OSのアーキテクチャと構成技術
Firefox OSのアーキテクチャと構成技術Firefox OSのアーキテクチャと構成技術
Firefox OSのアーキテクチャと構成技術
Makoto Kato
?
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
dynamis
?
贵颈谤别蹿辞虫と惭辞锄颈濒濒补での厂痴骋の取り组み
贵颈谤别蹿辞虫と惭辞锄颈濒濒补での厂痴骋の取り组み贵颈谤别蹿辞虫と惭辞锄颈濒濒补での厂痴骋の取り组み
贵颈谤别蹿辞虫と惭辞锄颈濒濒补での厂痴骋の取り组み
Makoto Kato
?
笔丑辞苍别骋补辫で奥别产アプリをスマホアプリ化
笔丑辞苍别骋补辫で奥别产アプリをスマホアプリ化笔丑辞苍别骋补辫で奥别产アプリをスマホアプリ化
笔丑辞苍别骋补辫で奥别产アプリをスマホアプリ化
Takashi Okamoto
?
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
Masakazu Muraoka
?
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platform
Toru Yamaguchi
?
20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward
Naoki Shimizu
?
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
Unity Technologies Japan K.K.
?
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
Unite2017Tokyo
?
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
Tetsuyuki Kobayashi
?
改めて C# でできることを振り返る
改めて C# でできることを振り返る改めて C# でできることを振り返る
改めて C# でできることを振り返る
Yuta Matsumura
?
Web os最新動向20130209
Web os最新動向20130209Web os最新動向20130209
Web os最新動向20130209
Akira Sasaki
?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Yuya Yamaki
?
Opa - Cloud Language
Opa - Cloud LanguageOpa - Cloud Language
Opa - Cloud Language
Tozo Tanaka
?
全部入り!奥骋笔で高速闯补惫补厂肠谤颈辫迟+贬惭尝5体験
全部入り!奥骋笔で高速闯补惫补厂肠谤颈辫迟+贬惭尝5体験全部入り!奥骋笔で高速闯补惫补厂肠谤颈辫迟+贬惭尝5体験
全部入り!奥骋笔で高速闯补惫补厂肠谤颈辫迟+贬惭尝5体験
AdvancedTechNight
?
Firefox OSのアーキテクチャと構成技術
Firefox OSのアーキテクチャと構成技術Firefox OSのアーキテクチャと構成技術
Firefox OSのアーキテクチャと構成技術
Makoto Kato
?

More from Makoto Kato (11)

Openness, Innovation and Opptunity
Openness, Innovation and OpptunityOpenness, Innovation and Opptunity
Openness, Innovation and Opptunity
Makoto Kato
?
贵颈谤别蹿辞虫の开発プロセス
贵颈谤别蹿辞虫の开発プロセス贵颈谤别蹿辞虫の开発プロセス
贵颈谤别蹿辞虫の开発プロセス
Makoto Kato
?
"Open"
"Open""Open"
"Open"
Makoto Kato
?
ブラウザの歴史
ブラウザの歴史ブラウザの歴史
ブラウザの歴史
Makoto Kato
?
颁厂厂3の最新事情
颁厂厂3の最新事情颁厂厂3の最新事情
颁厂厂3の最新事情
Makoto Kato
?
Web Technology features with Firefox 3.6 / Gecko 1.9.2 and later
Web Technology features with Firefox 3.6 / Gecko 1.9.2 and laterWeb Technology features with Firefox 3.6 / Gecko 1.9.2 and later
Web Technology features with Firefox 3.6 / Gecko 1.9.2 and later
Makoto Kato
?
Thunderbird 3のご紹介と企業に求められるカスタマイズ
Thunderbird 3のご紹介と企業に求められるカスタマイズThunderbird 3のご紹介と企業に求められるカスタマイズ
Thunderbird 3のご紹介と企業に求められるカスタマイズ
Makoto Kato
?
js-ctypes - ネイティブコードを呼び出す新しいカタチ
js-ctypes - ネイティブコードを呼び出す新しいカタチjs-ctypes - ネイティブコードを呼び出す新しいカタチ
js-ctypes - ネイティブコードを呼び出す新しいカタチ
Makoto Kato
?
Openness, Innovation and Opptunity
Openness, Innovation and OpptunityOpenness, Innovation and Opptunity
Openness, Innovation and Opptunity
Makoto Kato
?
贵颈谤别蹿辞虫の开発プロセス
贵颈谤别蹿辞虫の开発プロセス贵颈谤别蹿辞虫の开発プロセス
贵颈谤别蹿辞虫の开発プロセス
Makoto Kato
?
ブラウザの歴史
ブラウザの歴史ブラウザの歴史
ブラウザの歴史
Makoto Kato
?
颁厂厂3の最新事情
颁厂厂3の最新事情颁厂厂3の最新事情
颁厂厂3の最新事情
Makoto Kato
?
Web Technology features with Firefox 3.6 / Gecko 1.9.2 and later
Web Technology features with Firefox 3.6 / Gecko 1.9.2 and laterWeb Technology features with Firefox 3.6 / Gecko 1.9.2 and later
Web Technology features with Firefox 3.6 / Gecko 1.9.2 and later
Makoto Kato
?
Thunderbird 3のご紹介と企業に求められるカスタマイズ
Thunderbird 3のご紹介と企業に求められるカスタマイズThunderbird 3のご紹介と企業に求められるカスタマイズ
Thunderbird 3のご紹介と企業に求められるカスタマイズ
Makoto Kato
?
js-ctypes - ネイティブコードを呼び出す新しいカタチ
js-ctypes - ネイティブコードを呼び出す新しいカタチjs-ctypes - ネイティブコードを呼び出す新しいカタチ
js-ctypes - ネイティブコードを呼び出す新しいカタチ
Makoto Kato
?

Recently uploaded (11)

【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?

Firefox mobile for android internals

  • 1. Firefox Mobile for Android Internals Makoto Kato
  • 2. 自己紹介 ? 名前: 加藤 誠 / @makoto_kato ? Mozilla Committer ? Geckoの開発が始まった頃くらいからコードを書 き始める ? 初期のI18N関係はNetscapeの社員+自分のコード ? いろいろあって、Mozillaから離れる ? いろいろが終了したんで、Mozillaのコードをまた 書き始める ? 気付いたらMozilla Japan
  • 4. About Fennec ? Fennec = モバイル版Firefoxのコードネーム ? XULRunner (Gecko) + Mobile UI ? UIをタッチデバイス用に最適化しもの ? Gecko (レンダリングエンジン)はそのまま ? UIはFirefox同様にXUL+JavaScriptで作成
  • 6. Maemo Browser ? 初代Internet TabletはOperaを採用 ? 2世代目 (Nokia N800)から、Geckoベースの ブラウザを採用 ? そこからMozilla独自のモバイル版の開発
  • 8. Mobile OS Share by Web browsing
  • 13. Concept ? Browsing without borders ? デスクトップ版と”同じ”レンダリングエンジン ? Full Web stack ? HTML5/CSS3/SVG/WebGL ? モバイルのための機能 ? Geo Location / Accelerometer / Touch ? 拡張機能 ? モバイルでも同様にアドオンをサポート
  • 14. Version History ? Version 1.0 ? 2010年1月リリース ? Firefox 3.6ベース / Maemo only ? Version 1.1 ? 2010年8月リリース ? Firefox 3.6ベース / Maemo only ? Version 4.0 ? 2011年?月リリース ? Firefox 4.0ベース / Maemo / Android
  • 15. 対応OS ? Maemo 5 GTK+ or Qt (Nokia N900 only) ? Android ? MeeGo ? ハンドセット版には、QtバージョンのFennecが含 まれる
  • 20. Nightly build ? Nightlyは以下のURLからダウンロード ? http://ftp.mozilla.org/pub/mozilla.org/mobile/ nightly/latest-mobile-trunk/ ? 自動アップデートサポート ? Maemo (OSのパッケージマネージャ経由) ? Android
  • 21. Web Stack ? モバイル版であっても、Web Stacksはデスク トップ版と同等 ? HTML5 ? Device API ? GeoLocation ? CSS3 ? SVG ? WebGL
  • 22. Full Web Stack ? デスクトップ版とコードベースはまったく一緒 ? デスクトップ版でサポートされているものは基本 的にモバイル版でもサポート ? サポートが異なるものは以下の理由 ? OSの違い ? プロセス分離(あとで話します)の影響
  • 24. Geo Location ? GPSのみ ? WiFiでの情報取得は現状未サポート (Android)
  • 27. CSS Transition ? 現状はちょっとスムーズではないけど ? https://developer.mozilla.org/samples/css ref/transitions/sample1/
  • 28. SVG
  • 29. WebGL
  • 30. 制限事項 ? モバイル版ということではなくて、プロセス分 離の影響 ? HTML5 Forms ? required属性 ? validation ? WebSocket ? モバイル的に無理かも ? Drag & Drop ? 正式版までにどうするかはまだ決まってない
  • 31. Add-ons support ? Mobile版でも当然作成可能 ? デスクトップ版と作成方法は同じ ? まったく同じでは動かない // in Firefox alert(gBrowser.contentDocument.title); // in Fennec alert(Browser.selectedBrowser.contentDocument.title); ? 開発にはエミュレータを使うのを推奨
  • 33. JavaScript / SpiderMonkey ? JITは当然搭載 ? TraceMonkey ? JaegerMonkey ? デスクトップ版と同等 ? 問題がちょっとあって、Beta 1ではSamsung Galaxy SではJIT無効
  • 34. TraceMonkey ? Tracing + NanoJIT=TraceMonkey ? Tracing ? 実行回数が多いポイント(=ホットスポット)に対し て効率的なコードを吐く手法 ? Android 2.2のDalvikVMとかも同様のパターン ? JavaScriptのバイトコードからLIRを生成する ? NanoJIT ? LIRをネイティブコードにコンパイルするもの ? Flash (Action Script 3)でも利用している ? 昔Tamarinというプロジェクトがあったんだけど、それを捨て て、彼らもMozilla製のコンパイラを利用
  • 35. JaegerMonkey ? TraceMonkeyの弱点を補うもの ? TraceMonkeyはネイティブコードを生成でき れば、現時点で最速のコードを叩きだす ? 出来ない場合はインタプリタで実行しなおすので、 超遅い
  • 36. JaegerMonkey ? インタプリタで実行せずにすべてJIT化する ? TraceMonkeyでJIT不可なケースを拾うのが目的 ? アセンブラからネイティブコードする部分のみ JavaScriptCore (WebKit)のコードを利用 ? どうアセンブラを生成するかについては、独自実 装 ? インラインキャッシュ ? V8で先に採用している、動的に型を決める言語で 使われるテクニック
  • 37. その他 ? YARR (from JavaScriptCore/WebKit) ? 正規表現ライブラリ ? Mobile 4.0 Beta1ではDisable ? FastDtoa (from V8) ? 数字と文字列の変換 ? Compartments GC ? ガーベージコレクション
  • 38. Electrolysis (e10s) ? プラグインプロセスの分離 (Firefox 3.6) ? プラグインのバグによるクラッシュの影響を少な くする ? コンテンツプロセスとブラウザプロセスの分離 (Firefox Mobile 4) ? レスポンシビリティ向上のため ? 通信には、Chromiumのipcライブラリを利用
  • 39. e10s on Android ? org.mozilla.fennecというDalvikVM上で動く ブラウザプロセス ? plugin-containerというコンテンツプロセス app_44 28117 18481 278064 60072 ffffffff afe0c9fc S org.mozilla.fennec app_44 28182 28117 113440 65136 ffffffff 8122f908 D /data/data/org.mozilla.fennec/plugin-container ? コンテンツプロセスをクラッシュしてもブラウ ザプロセスは保護される
  • 42. Android Application ? AndroidはIntentなどのUIサービスにアクセス するために、Java(DalvikVM)を使わないとい けない(いけなかった) ? アプリケーションはJavaで書く必要がある ? Firefox/Geckoの土台はC++で書かれている ? だから移植無理 ? 2009年の6月にNDKリリース ? C++で書かれたコードを動かす方法が提供される ? 引き続きJavaは必要だけど
  • 43. NDK ? 開発初期は、NDKへパッチを当てていた ? というか、使うヘッダによってはビルド出来ない 物だった ? だんだんパッチだけでは対処不可 ? 現在はGoogleのNDKを実は利用していない
  • 44. NDK ? 現在はCrystaXのカスタム版を使用 ? http://www.crystax.net/android/ndk.php ? Mozillaのコードベースはgcc4が基本 (WindowsとSolaris以外) ? 標準C++ライブラリがNDKというか、Bonic libcだと中途半端すぎ ? ポーティングには実際向かない
  • 45. Binaries ? サイズを節約するために、Thumb2を利用 ? だからエミュレータ上では動作しない ? Android OS上のライブラリをほとんど利用し ていないので、パッケージサイズは非常に大き い ? nspr / nss / zlib / libbz2 / sqlite3 / freetype / libpng / libjpeg / cairo / etc
  • 46. For DalvikVM ? Javaを使う部分はAndroidのDalvikVM/Java API (JNI)を使うためのラッパー ? Java使ってるのは、これだけ -rw-r--r-- 1 makoto users 3907 Oct 8 13:04 AlertNotification.java -rw-r--r-- 1 makoto users 18600 Oct 8 13:04 GeckoApp.java -rw-r--r-- 1 makoto users 20783 Oct 8 13:04 GeckoAppShell.java -rw-r--r-- 1 makoto users 7065 Aug 5 10:57 GeckoEvent.java -rw-r--r-- 1 makoto users 17950 Aug 25 13:58 GeckoInputConnection.java -rw-r--r-- 1 makoto users 10167 Oct 14 15:11 GeckoSurfaceView.java
  • 47. Graphics Rendering ? レンダリングは、OpenGL ES 2 or 直接ビデ オメモリへの描画 ? Skia (http://code.google.com/p/skia/) も使う 方法もあったけど、結果として今の方法を採用 ? OpenGL ESのフル機能は利用していない ? Cairo (GeckoやAdobe AIRで採用しているグ ラフィックライブラリ)でレンダリング結果の 画像を生成して描画
  • 48. Resources ? Firefox Mobile ? http://www.mozilla.com/en-US/mobile/ ? How to build Android version ? https://wiki.mozilla.org/Mobile/Fennec/Androi d ? Firefox for mobile ideas Forum ? http://firefoxformobile.uservoice.com/forums/ 70211-firefox-for-mobile-ideas ? Extensions - e10s ? https://wiki.mozilla.org/Mobile/Fennec/Extens ions/Electrolysis