devtools-detecter

基于定时性能采样的 DevTools 检测

MIT License

Downloads
13
Stars
11
Committers
3

devtools detecter

DevTools

Module Demo

ES5 Demo

Install

npm install devtools-detecter

Usage

<script src="https://unpkg.com/devtools-detecter/dist/DevtoolsDetecter.js"></script>
<script>
  DevtoolsDetecter.debug()
  DevtoolsDetecter.addListener(isOpen => {
    if (isOpen) {
      document.title = "DevTools detected";
      document.body.style["backgroundColor"] = "red";
    } else {
      document.title = "DevTools NOT detected";
      document.body.style["backgroundColor"] = "unset";
    }
  })
  DevtoolsDetecter.launch()
</script>
<script type="module">
  import DevtoolsDetecter from "https://unpkg.com/devtools-detecter/index.js"
  DevtoolsDetecter.debug()
  DevtoolsDetecter.addListener(isOpen => {
    if (isOpen) {
      document.title = "DevTools detected";
      document.body.style["backgroundColor"] = "red";
    } else {
      document.title = "DevTools NOT detected";
      document.body.style["backgroundColor"] = "unset";
    }
  })
  DevtoolsDetecter.launch()
</script>

API

  • debug()

  • getStatus() true false

  • setBenchmarkMaxN(value: number) N 7000000

  • setBenchmark(value: function)

  • setTimingSamplingMaxN(value: number) N1000

  • setTimer(t: number) 500

  • addListener(callBack: (isOpen: boolean) => void)

  • launch()

  • stop()

Benchmark

Benchmark()

devtools

($CriticalLevel$)

ToDo

DevTools

console

ToDo

()

$n$

$X$

$$ X_1,X_2,X_3,...,X_n $$

$X$ $X$

$$ p(X_i)=\frac{1}{n} $$

$$ E(X)=X_1 \times p(X_1)+X_2 \times p(X_2)+...+X_n \times p(X_n)=\sum_{i=1}^{n}X_ip(X_i) $$

$$ E(X)=\frac{1}{n}\sum_{i=1}^{n}X_i $$

$$ D(X)=E((X-E(X))^2)=\sum_{i=1}^{n}p(X_i)(X_i-E(X))^2 $$

$$ D(X)=\frac{1}{n}\sum_{i=1}^{n}(X_i-\frac{1}{n}\sum_{i=1}^{n}X_i)^2 $$

$$ E(X) > AverageCriticalLevel $$

$$ E(X) > AverageCriticalLevel \times 0.85 $$

$$ D(X) > VarianceCriticalLevel $$

$m$ :

$$ S_i = \frac{1}{m}\sum_{j=1+i}^{m+i}X_j $$

$$ \begin{cases} S_1 > S_2 \\ S_2 > S_3 \\ .... \\ S_{n-m} > S_{n-m+1} \end{cases} $$

ToDo

$t$, $CriticalLevel$, $X$, $f(t)$:

$$ f(t)= min(Average(X) \times 5 ,CriticalLevel) $$

ToDo

eruda

IE IE Edge

~~

console hack IE Benchmark() hack

getter hack.

div id div console.log(div) id console.log getter

let div = document.createElement('div');
let loop = setInterval(() => {
  console.log(div);
  console.clear();
});
Object.defineProperty(div,"id", {get: () => {
  clearInterval(loop);
  alert("Dev Tools detected!");
}});

getter hack DevTools getter

getter hack IE Edge

Bug Bug

End

LICENSE

MIT