https://github.com/basecamp/trix/blob/v2.1.0/src/trix/models/html_sanitizer.js ◦ 入力された HTML 文字列から、表示ドキュメントとは別に DOM ツリーを作成 し、その DOM ツリーから許可されない要素や属性を除去する ◦ 処理済みの DOM ツリーが表示ドキュメントに追加される なぜ noscript タグが作用するのか?(1)
が出現すると scripting flag による分岐がある ◦ > A start tag whose tag name is "noscript", if the scripting flag is enabled Follow the generic raw text element parsing algorithm. ◦ scripting flag が enabled の場合は raw text の扱いになる (!) ▪ なので `</noscript>` の並びまでが noscript タグの content になる ▪ script タグの中で `</script>` が出てきたら問答無用で script タグが終 了するアレです なぜ noscript タグが作用するのか?(3)
scripting flag が enabled になる ◦ browsing context がある状態とは JavaScript のグローバルオブジェクトであ る window がある状態 = スクリプトが実行できる状態 ▪ (ここの説明がやや微妙だが、一旦そういうことで ...) • spec にコレっていう言及がある ◦ > A Document created using an API such as createDocument() never has a non-null browsing context. ◦ Trix Editor のサニタイズ処理では scripting flag は disabled で処理されてい たと言える なぜ noscript タグが作用するのか?(5)