Google Chrome 80の仕様変更(Cookieの扱い)でハマった

2020年2月にリリースされた最新のGoogle Chrome 80でCookieの扱いが変わりました。一般的なホームページを作っているだけなら問題は無いと思いますがOpenIDの様な外部認証を使っているとハマるかもしれません。

現象としては
セッションコントロールのためにCookieを設定
自分のページから外部認証サイトにリダイレクト
認証が正常終了
自分のサイトにリダイレクト
なぜか設定したCookieが渡ってこない

とりあえずCookieに
SameSite=None; Secure
を付加してクロスサイトで有効になる様に変更したところ問題が解消

原因として考えられるのは
設定しているCookieの有効期限が「セッション」なのでリダイレクトで消える
仕様通り戻りのリダイレクトでクロスサイト問題が起きる
Chromeにリダイレクト時のバグもしくは仕様変更がある

あくまでもとりあえず修正なのでもう少し調べる必要がありそうです。

Java/Scalaフレームワーク Play Framework でハマった事

ふと気になってPlay Frameworkの入門書を買ったのですが最初からハマったので共有しておきます。

[error] java.lang.RuntimeException: No main class detected.
[error] at scala.sys.package$.error(package.scala:30)
[error] stack trace is suppressed; run last Compile / bgRun for the full output
[error] (Compile / bgRun) No main class detected.
main.classが無いってエラーなのですがしばらく悩んでしまいました。

原因は簡単で新規に作ったプロジェクトフォルダーに cd していなかっただけでしたw
書籍はちゃんと読みましょう。

ちなみに sbt new ってやると実行時のカレントフォルダーにプロジェクトが作成されるので保存したい場所に移動してから実行しましょう。

T2チップ付きのMacBook Pro を修理に出したら英語のメッセージが出て起動しなくなった

液晶に問題がおきたので修理に出したら別の問題が発生。
電源を入れると内臓SSDからではなくネットワークから起動する状態となり、ネットに接続して起動を続けると以下の文字列のダイアログが表示されます。

A software update is required use this startup disk.
You can update now or select another startup disk.
  Startup Disk… Update

どうやら以下のリンク先にあるセキュリティのチェックに引っかかるとこのメッセージが出るようです。
起動セキュリティユーティリティについて (Appleサポートページ)

Optionを押して電源を入れて内臓SSDを選んでも途中で再起動して同じ画面に戻る。
Updateを押すと何かアップデートするけどまた元に戻る。

(以下しばらくは間違ったやり方の記録なので急ぎの方は最後を見てください)

しばらく悩んだ後command+Rで起動すると復元画面が出ることがわかり、TimeMachineバックアップから復元するもやはり元に戻らず。仕方がないのでmacOSの再インストールからやり直すことに。

再インストールは順調に進んだが、TimeMachineのデータをマイグレーションしようとするとエラーが発生しやっと問題に気づく。

command+Rで起動するとSSDからは起動できないのでネットから起動するが、起動するのは購入時にプリインストールされていたmacOSの最新版になるらしい。
私の場合10.13から10.14にアップグレードしていたため、古いOSに新しいOSのデータがマイグレーションできずにエラーとなっていました。

仕方がないのでインストールした古いmacOSで起動して最新版にアップグレード。
その後にTimeMachineのデータをマイグレーションして復旧しましたw

ここからが本来のやり方と思われる方法。
command+Rで内臓SSDから復元が起動しない場合は

option+command+Rで起動する。
macOS 復元から macOS を再インストールする方法 (Appleサポートページ)

これにより最新の復元ソフトが起動するのでもしかしたらエラーなくupdateができて起動できたのかもしれません。(もう元には戻らないので確かめられませんがw)

参考になれば幸いです。