-
Notifications
You must be signed in to change notification settings - Fork 0
/
cloak.js
35 lines (32 loc) · 864 Bytes
/
cloak.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class TabCloak {
constructor(config) {
this.config = config;
this.originalTitle = document.title;
}
async title() {
var url = location.protocol + "//textance.herokuapp.com/title/" + this.config.url;
var response = await fetch(url);
var title = await response.text();
return title;
}
favicon() {
var url = `${location.protocol}//www.google.com/s2/favicons?domain=${this.config.url}&sz=128`;
return url;
}
main() {
// Favicon
var link = document.querySelector("link[rel~='icon']");
if (!link) {
link = document.createElement('link');
link.rel = 'icon';
document.getElementsByTagName('head')[0].appendChild(link);
}
link.href = this.favicon();
// Title
document.title = this.title();
return {
title: await this.title(),
favicon: this.favicon()
}
}
}