elkurin’s blog

銀英伝はいいぞ

えるくりん月報 2024年1月号

記念すべきえるくりん月報初号です。

仕事や私事についてランダムに書きます。

 

インターンホスト終了

ホストしていたインターン氏が期間を終了した。

ChromeOSのブラウザ(Lacros)のプロセス立ち上げのコードを直してもらった。難しいコードベースと厳しいReviewerの中とても頑張ってくれた。コード

base::CommandLine の API も追加してくれた。今までのAPIだとCommandLineオブジェクトにオプション列を追加することができず、一個一個Appendするしかなかったが、これからはCommandLine同士が合体できるようになった。

Bubble Clipping 躍進

Bubble View はWindowを構成するviewの一つで、例えばタブにマウスをhoverすると見えるPreviewとかがBubble Viewにあたる。

使っているOSによってはこのBubble Viewがウィンドウの外にあると切れちゃう。

omnibox popup が切れちゃってる (正確にはbubbleではない)

これを直したい。crbug.com/1280332 。片手で数え切れないシニアエンジニアを巻き込んだめっちゃ大変なプロジェクトだったが、ようやくゴールが見えてきた。とりあえず自分の方針が採用されたので手を動かし中。かなりクリーンなデザインになってきたと思う。プロトタイプ

Shipしたら記事をかいてもいいかも。

Pinned Fullscreen を Lacros wayland上 で統合

現在 Fullscreen モードの実装ががちゃがちゃでバグだらけだしTestを書けないので根本的に直している途中。

ChromeのFullscreenは pinned, trusted pinned, immersive, plain の4種類あって、他のWindow state (e.g. maximized, snapped, minimized) とは別に、特殊な処理として書かれている。他のWindow stateと同じ感じに統合したいよね。

Fullscreenのタイプの一つ Pinned Fullscreen を PlatformWindowState で他のWindow stateと同じように統合したところ。コード

Immersive Fullscreenは現在進行中

Gardener

ChromeOSのビルドを監視する週間 ChromeOS Gardener の担当が回ってきた。ChromeOS Gardener のお仕事は Chrome側で使われるChromeOSのバージョンとChromeOSと一緒にShipされるAshLacrosのバージョンをdailyで更新して、統合時にコンパイルやテストが壊れたり、その他インフラなど何らかの理由でうまく行かなかったら直すこと。

担当中に問題を20個以上解決した。偉い。

パイセンにも褒めてもらった。

 

その他直したバグ

  • 「Windowの最小化→もとに戻す」 をやると下に変な空白ができたり、Windowサイズが半分になったりするバグ。Windowの境界線1px分が最小化すると消える実装になっており、Layerのサイズは境界の有無によって変更されているが、contents自体は変わっていないためSurface id が更新されておらず、surface をUpdateしないレアケースを踏んでいた。
  • Google Docをめっちゃスクロールした状態だとタブをDragできないバグ。HitTestMaskの座標が間違っていたため、Google DocsなどのデカいquadがWindowの外にいるとその分の座標変換に失敗しTargetがおかしくなっていた。普通のEvent targettingはうまくいくが、Tabを取り外して違うWindowを作る際に座標空間が変わるので壊れた。
  • base::CommandLineにオプション列を追加するコードが先頭の値だけ無視されていたバグ。インターン氏のbase::CommandLine の API のおかげでなおった
  • いくつかのテストがtimeoutになって失敗しているバグ。結論ただtimeoutを延長した。
  • Locked Fullscreenになるとき何故かImmersive Fullscreenを経由してしまうバグ。上記のPined Fullscreen仕事でダイレクトに正しいstateへ飛べるようになったためなおった。
  • WIP: Tablet Modeに入る前のImemrsive状態がTablet Modeから出たときに復元されないバグ。シンプルにLacrosでは実装されていない。実装中。

 

仕事の年間評価をもらった

今年のテーマは影響力を上げていくこと。がんばるぞい

 

トマムに行ってスキーした

elkurin.hatenablog.com

 

ダンガンロンパ2をクリアした

面白かった。何を書いてもネタバレになるので何も書けない。

2章のクロを動機から全て的中した。5章が本当にすごい。ダンガンロンパという世界観をフルに活かしていて最高。

 

ダンガンロンパV3を進行中、2章までクリアしたけど個人的にはダンガンロンパ2以上に最高だと思う。

 

TFTでダイヤモンドに到達した

最初はジンクス・アニー・セナの低コス構成をやってて、プラチナでスタックしたときにエズリアル進行を極め、そのあとは比較的すんなりダイヤモンドまで来た。エズ・ケイト、ビッグショット4エズ、ディスコTF、センチネルアーリと4コス構成ばっかり使って、どうしても金がなさそうなときだけカントリーサミーラやEDMジャックスに行ってた。

 

組み合わせ論ゼミでクソ計算をやった

スキーから帰ってきてすぐGardener担当だったしゼミ担当だった。

今回は自然数の分割の組み合わせを母関数を使いながら解析する方法を学んだ。

 

Mind the Gap でお話した

弊社が度々行っている中高生へCSについて伝える会に登壇した。女子中高生と言わず全中高生にお話したいがどうしても女子向けイベントの方が圧倒的に多いがち。

events.google.com

 

友達のアカペラ全国大会に応援しに行った

歌っていいなあ。

 

葬送のフリーレン

好き。1級試験編始まってアガってる。

 

最近全然本読んでない

反省。今月はこのペースに戻したい。

elkurin.hatenablog.com

 

今月のT1

GenGに1-2で負けた以外はKT, HLEにも勝って順調。Faker vs BDDのレーン戦・小規模戦が見応えあった。ミッドを勝たせる動きがT1全体としてうまい。Zeusはほっといても最強。

優勝グッズももらってウキウキ。かばんにキーホルダーつけてる。

 

今月の elkurin-daily-notes

今月のベストノート→

hackmd.io

一覧:

  1. 2023年のまとめ - elkurin’s blog
  2. What is Viz? - HackMD
  3. buildされないheader fileをincludeしてもコンパイルが通るのはなぜ? - HackMD
  4. テンプレート勉強会Part2 - HackMD
  5. std::in_place_type - HackMD
  6. Various Bubble Views - HackMD
  7. PGO最適化 - HackMD
  8. Chromiumでtestをdisableする方法 - HackMD
  9. WebUI - HackMD
  10. Surface content rect - HackMD
  11. スキー旅行にいってきた話 - elkurin’s blog
  12. How to Build Property Tree - HackMD
  13. Common Ancestor Clip - HackMD
  14. Display size on viz - HackMD
  15. このブログ

 

総括

  • Week 1:正月休み
  • Week 2:インターン最終週
  • Week 3:スキー
  • Week 4:Gardener
  • Week 5:Bubble Clipping ソロ Hackathon

 

今月もオツカレ!