devtools を開くと詳しくない人向けにここにコードを貼り付けないでくださいみたいに書いてるサービスは見たことがありますがコンソールの入力でエラーを通知されるのは初めてでした
そもそもコンソールに入力があったことを ページ側でどうやって検知してるのでしょうか?
そんな API が追加されたという話は聞いていませんがひっそりと追加されたのでしょうか?
ネットで調べても見つからないですし 検知して実際に通知を行ってるページがあるのですからそこのソースを devtools で見てどうやってるのかを調査しました
結果は単純で window の error イベントを検知してるだけでした
特にコンソールの入力を禁止する目的ではなかったようです
考えてみるとエラーが通知されるタイミングは「1+」のように構文的にエラーになるタイミングでした
試しに
window.addEventListener("error", err => {
console.log("ERR!", err)
})
というコードを設置したページを開いてコンソールに入力してみます
すると 「1+2」 と打とうとしたとき 「1+」 のタイミングでエラーがログに表示されました
入力中でも構文がチェックされて window の error として受け取れるようです
devtools のコンソールでしかも入力途中は不要だと思うのですけどね
気になるのはクライアントサイドのエラーを収集するために window の error イベントが起きたときにサーバにデータを送信するサービスがあるというところ
サービス側としてはコンソールで色々弄る人がいると大量のエラーが送信されます
ただこれはすでに拡張機能などによる DOM 編集でエラーが出るケースなどはあるので対処されてるでしょう
怖いのはコンソールに入力したものが意図せず送信されてるんじゃないかってところです
エラーが発生したコードも取れるかと ErrorEvent インスタンスの中を見てみました
見た感じでは error プロパティに Error オブジェクトが入っていて message に 「Unexpected end of input」 というのがあるくらいでした
もちろんエラー内容によっては null のプロパティを参照しようとしたなどもう少しわかるかもしれません
とりあえずコードの文字列への参照などはなく コンソールで色々するのを控える必要はなさそうです
ページからのエラー通知が邪魔なら devtools でコードを書き換えて error イベント時の処理の最初に return を追加するなどで回避できます