Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevTools を開いたら人類滅亡

diescake
March 24, 2018

DevTools を開いたら人類滅亡

DevTools を開いたら人類が滅亡するジョークライブラリの紹介から、その技術的な仕組みについて簡単に解説

* 2018/3/24 Manabiya Teratail Developer Days [Web LT]

diescake

March 24, 2018
Tweet

More Decks by diescake

Other Decks in Programming

Transcript

  1. ACCESS CO., LTD. Daisuke Kondo @diescake * Frontend / xR

    * 大喜利エンジニア * Vim * きのこの山 * iPhone * ガチャピン * 目玉焼き→ソース派 * たいやき→頭から * クラフトビール * テニス * せいそくち 浅草 自己紹介
  2. ACCESS CO., LTD. Daisuke Kondo @diescake * Frontend / xR

    * 大喜利エンジニア * Vim * きのこの山 * iPhone * ガチャピン * 目玉焼き→ソース派 * たいやき→頭から * クラフトビール * テニス * せいそくち 浅草 自己紹介 会社が休みになるボタン https://qiita.com/diescake/items/d4e1fb2dccc2fd4c92d8
  3. ACCESS CO., LTD. Daisuke Kondo @diescake * Frontend / xR

    * 大喜利エンジニア * Vim * きのこの山 * iPhone * ガチャピン * 目玉焼き→ソース派 * たいやき→頭から * クラフトビール * テニス * せいそくち 浅草 自己紹介 布団から腕すら出さずに会社を休む [Google Home] https://qiita.com/diescake/items/4f354a5dc7cb738efd4f
  4. devtools-detect * DevTools の開閉が検出可能な EventListener を提供 $ npm install --save

    devtools-detect windows.addEventListener('devtoolschange', (e) => { console.log(`is DevTools open? ${e.detail.open}`); }); * 要するに devtools-detect 使って、 iframe で YouTube 展開しただけ… https://github.com/sindresorhus/devtools-detect
  5. Pros/Cons * Pros * Chrome, Firefox, Safari, Edge に対応 *

    今後対策される可能性は低い * Cons * DevTools を別ウィンドウにされると 手も足もでない * 性質上 false positive な面が強い
  6. Object の id を利用 const e = document.createElement('any'); Object.defineProperty(e, 'id',

    { get:() => { alert('devtools open !!') } }); setInterval(() => { console.log(e); }, 2000); * DevTools 表示時に console.log が処理され id が取得される性質を利用
  7. Pros/Cons * Pros * Chrome, Safari, Edge に対応 * DevTools

    が別ウィンドウでも検出可能 * Cons * Firefox 非対応 * 今後対策される可能性がある