スクリーンショット 2013-12-07 11.22.38.png

はじめに

ServoとはMozillaやサムスンがバックアップしている関数型言語Rustで作成されているHTMLレイアウトエンジンです。

今日は、RustのキラーアプリであるServo Layout Engineをビルドして使ってみます。

関数型言語で作っているのできっと、型安全でセキュリティホールが少ないブラウザになっていくのでしょう。

servoのページ

githubにServoはあります。あらかじめ、Rust0.8がインストールされていましたけど、Rust自体もServoに含まれているようでした。

ビルド

環境は osx mercurial, homebrewです。

まずは、autoconf213.rbとautomakeとかのツールをインストール

brew install https://raw.github.com/Homebrew/homebrew-versions/master/autoconf213.rb
brew install automake libtool pkg-config

clone

git clone https://github.com/mozilla/servo.git

servoのビルド

cd servo
mkdir -p build && cd build
../configure

configureは時間がかかるので寝て待ちましょう。

暇なので、コマンドライン引数の翻訳とかしてみます。

コマンドライン引数

-p INTERVAL プロファイラをオンにし、コンソール INTERVAL 秒ごとに情報をダンプします
-s SIZE レンダリングのためのタイルサイズを設定します。デフォルトは512です
-z すべてのグラフィック出力を無効にします。JS/レイアウトのテストを実行するのに便利です

キーボードショートカット

CTRL-L新しいURLを参照するためのダイアログを開きます(現在はMacのみ)

Ctrl – -ズームアウト

Ctrl – =でズーム

Backspace ヒストリを戻る

Shift – Backspace ヒストリを進む

ESC サーボを終了

キーボードショートカットも翻訳してみた。しかしまだなんかやってます。
記事も書き進めてっと、あ、終わった。

終わったら、makeです。servoのページにはmake && make checkと書いてあったのですが、チェックも長そうだから、make checkはやらなくてもいいんじゃないかな。

make

rustのビルドが始まったぞ、、、。長そうだ。2013-10-28のrustを使っているようです。

extracting rust-stage0/lib/libstd-6c65cf4b443341b1-0.9-pre.dylib

とか出てるので、すでに0.9に対応しつつあるのかな?
LLVMのビルドしてるし、大分かかりそうだ。時間も記録しておけば良い気もするけどまぁ、いいや。llvmが終わったら、rustをビルドして、終わったらservoのライブラリを1個ずつビルドして最後にservoのビルドをして完了ってなるんでしょう。たぶん。

実行

もうとりあえず、servoの実行をしてみます。

./servo ../src/test/html/about-mozilla.html

ちゃんと見れますね。他にもテストファイルが沢山あるのである程度描画出来ているっていう段階のようです。

make check

とりあえず、チェックもしておきましょう。

Android のビルド

Android用にビルドも出来るみたいです。やってませんけどandroid-sdkとandroid-ndkがあればビルド出来るようです。

git clone https://github.com/mozilla/servo.git
cd servo
mkdir -p build && cd build
../configure --target-triples=arm-linux-androideabi --android-cross-path=<Android toolchain path> --android-ndk-path=<Android NDK path> --android-sdk-path=<Android SDK path>
make
广告
将在 10 秒后关闭
bannerAds