Closed8

WebKit に PR を送りたい

椎名椎名

clone

git clone https://github.com/WebKit/WebKit.git WebKit --depth 1

build

M3 MacBook Air で1~1.5時間かかった。もしかすると何か設定がおかしいのかもしれない。

Tools/Scripts/build-webkit --debug

無事に終わると以下のような表示が出る。

==============================================================
WebKit is now built (1h:07m:11s).
To run Safari with this newly-built code, use
the command "Tools/Scripts/run-safari --debug".
==============================================================

run-minibrowser

build の成功表示には run-safari をするようにとあるが、手元だとエラーが出て動かなかった。minibrowser というものがあるようだったので試してみたところ動いたのでminibrowserで進めることにした。

Tools/Scripts/run-minibrowser --debug
椎名椎名

PR 作成

もし作成しようとしている PR に対応する Bug が Bugzilla になければ作成してから始める。description は変更できないのでよく確認してから作成する。

git-webkit setupを使ってセットアップ。2024-11-24 時点では Python 3.13 に対応していなかったため注意。表示が変わらないまま数十分待つ箇所があったが気長に待つ。

Tools/Scripts/git-webkit setup

PRのために必要な箇所を変更したら、自分でブランチを作成したりコミットしたりせず、 git-webkit pr を呼び出す。

mainブランチで呼び出すと対応するBugzilla上のバグのURLを聞かれ、適切なブランチが作成される。
setup 時に指定したエディタでコミットメッセージを編集できるので、(OOPS!) となっている箇所を指示に従って適切に書き換える。Reviewed by NOBODY (OOPS!) の部分はそのままにした。

Tools/Scripts/git-webkit pr

setup 時に設定した GitHub Token が間違っているというようなエラーが出たが、そもそもラベルを設定できる権限はないのでメンバーじゃないならそのままで問題なさそう。

椎名椎名

そんなこんなでなんとか PR を送れた。すぐに GitHub 上で返信があり、修正したバグをテストするテストケースを追加してと言われたので今度はレイアウトテストの書き方を調べる。

https://github.com/WebKit/WebKit/pull/37074

椎名椎名

テストの実行

Tools/Scripts/run-webkit-tests --debug LayoutTests/fast/css/<filename>.html

PR の更新

git reset --soft HEAD^ して git-webkit pr し直してしまったが、普通にコミットした方が良かった気がする。

椎名椎名

https://github.com/WebKit/WebKit/blob/22751c7a6daf0665bf8d50505c7ec42e15ea7ea6/LayoutTests/fast/css/highlight-text-repaint.html を参考にそれっぽいテストを書いて、mainだと失敗し、自分のブランチだと成功することを確認したので PR を更新してレビューを再度リクエストした。

iOS-wk2, iOS-wk2-wpe の CI が失敗し、かなり詰まってしまったが、単にマウスイベントに関わるテストは TestExpectations で Skip していただけだった。

椎名椎名

遂に approve された!最後にテストケースの小さな修正を入れたのでその CI が通ったらマージされるんじゃないだろうか。他の人の記事に2ヶ月かかったみたいな記載があったのでビビっていたがむしろ早すぎるくらいで感動。

このスクラップは25日前にクローズされました