1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Blink には WebKit からフォークしたときのソースコードがどれぐらい残っているのか?

Posted at

いまだに「(レンダリングエンジンの) Blink は WebKit からフォークしたものだから、どちらも同じもので〜」という話を見かけます。

でも、Blink が WebKit からフォークしたのはもう10年以上も前1です。
それだけの期間が経過しているのだから、WebKit のコードはだいぶ減っているのでは?と思ったので調査してみました。

調査結果

Blink のソースコードのうち、WebKit からフォークしたときのままのコード行数はたったの 6.81% でした。
逆に言うと、93.19% の行はフォーク後に手が入っていました。

調査方法

Chromium のリポジトリを clone して、その中の Blink(third_party/blink) の各ファイルに対し git balme --follow -w (ファイル名変更を追跡、空白の差異を無視)で行ごとの変更履歴を追いかけました。
そのうえで、Blink フォーク前から変更のない行を確認しました。
(テストファイル2と画像などのバイナリファイル3は、集計から除外しています)

結果、対象となった16,016ファイル・2,494,063行のうち、WebKit から変更のまま変更のない行が 169,931行でした。

調査プログラム:https://gist.github.com/YujiSoftware/0a3adc5030918469b13894b33c7344e7

注意点

あくまで git blame は行単位のコミット履歴を追ったものです。
そのため、ちょっとした修正であっても WebKit と異なると判定している点に注意が必要です。
例えば、メソッド名の IsEmpty()empty() というリネームがされただけの行でも変更があったと判定しています。

現在の WebKit と Blink で diff を取るほうが正確かなとも考えたのですが、ディレクトリ構造が大きく変わっていてうまくいきそうにありませんでした。

結論

WebKit と Blink は別れたの!いつまでも昔のままだと思わないで!

  1. フォークしたのは2013年4月3日です。
    Chromium Blog: Blink: A rendering engine for the Chromium project

  2. パスの一部に test を含むものをテストファイルと判定

  3. ファイルの中に 0x00 が含まれているものをバイナリファイルと判定

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?