Skip to content

Commit c55e55f

Browse files
committed
v2.1
1 parent ffb289a commit c55e55f

File tree

8 files changed

+778
-578
lines changed

8 files changed

+778
-578
lines changed

assets/satus/satus.css

Lines changed: 265 additions & 195 deletions
Large diffs are not rendered by default.

assets/satus/satus.js

Lines changed: 402 additions & 321 deletions
Large diffs are not rendered by default.

content-scripts.js

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ function isset(variable) {
9393

9494
function prevent(event) {
9595
if (isset(extension.storage.website.active) === false || extension.storage.website.active === true) {
96-
for (var key in extension.storage.website.data) {
96+
for (var key in extension.storage.website) {
9797
var item = extension.storage.website[key],
9898
same_keys = true;
9999

@@ -140,19 +140,13 @@ function hid_keyboard(event) {
140140
}
141141

142142
if (isset(extension.storage.website.active) === false || extension.storage.website.active === true) {
143-
console.log(extension.storage.website.search === true,
144-
extension.hid.keys[70],
145-
extension.hid.shift === false,
146-
extension.hid.ctrl === true,
147-
extension.hid.alt === false);
148143
if (
149144
extension.storage.website.search === true &&
150145
extension.hid.keys[70] &&
151146
extension.hid.shift === false &&
152147
extension.hid.ctrl === true &&
153148
extension.hid.alt === false
154149
) {
155-
console.log('aaa');
156150
event.stopPropagation();
157151
}
158152
}
@@ -176,6 +170,16 @@ chrome.runtime.sendMessage('tab-connected', function (response) {
176170
});
177171
});
178172

173+
chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) {
174+
var action = message.action;
175+
176+
if (action === 'options-page-connected') {
177+
if (window === window.top) {
178+
sendResponse(extension.hostname);
179+
}
180+
}
181+
});
182+
179183
chrome.storage.onChanged.addListener(function () {
180184
extension.storage.import(function () {
181185
if (extension.storage.get('websites/' + extension.hostname + '/separated') === true) {

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"manifest_version": 3,
33
"name": "Unlock Keyboard & Mouse",
44
"description": "__MSG_description__",
5-
"version": "2.0",
5+
"version": "2.1",
66
"default_locale": "en",
77
"icons": {
88
"16": "assets/icons/16.png",

options-page/index.css

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,29 @@
11
/*--------------------------------------------------------------
22
>>> OPTIONS PAGE
33
----------------------------------------------------------------
4+
# Body
45
# Fonts
56
# Themes
67
# Alert
78
--------------------------------------------------------------*/
89

10+
/*--------------------------------------------------------------
11+
# BODY
12+
--------------------------------------------------------------*/
13+
14+
body {
15+
font-family: Roboto, sans-serif;
16+
font-size: 14px;
17+
margin: 0;
18+
overflow: hidden
19+
}
20+
21+
body[tab] {
22+
width: 100vw;
23+
height: 100vh
24+
}
25+
26+
927
/*--------------------------------------------------------------
1028
# FONTS
1129
--------------------------------------------------------------*/
@@ -35,9 +53,12 @@
3553
# THEMES
3654
--------------------------------------------------------------*/
3755

38-
body {
56+
.satus-base {
3957
--satus-light: 0, 0, 0;
4058
--satus-primary: #f6b465;
59+
--satus-alert-background--error: #f2cfcf;
60+
--satus-alert-border--error: 1px solid #e58a8a;
61+
--satus-alert-foreground--error: #d74747;
4162
--satus-header-background: #fff;
4263
--satus-header-shadow: 0 0 3px rgba(var(--satus-light), .1), inset 0 -1px 0 rgba(var(--satus-light), .1);
4364
--satus-header-foreground: #848471;
@@ -52,7 +73,7 @@ body {
5273
--satus-tabs-foreground: #fff;
5374
}
5475

55-
body[theme='dark'] {
76+
.satus-base[theme='dark'] {
5677
--satus-light: 255, 255, 255;
5778
--satus-primary: #8f8f8f;
5879
--satus-base-background: #000;

options-page/index.html

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,8 @@
66
<title>Unlock Keyboard & Mouse</title>
77
<style>
88
body {
9-
font-family: Roboto, sans-serif;
10-
font-size: 14px;
119
width: 320px;
12-
height: 500px;
13-
margin: 0
10+
height: 500px
1411
}
1512
</style>
1613
<link rel="stylesheet" href="../assets/satus/satus.css">

options-page/index.js

Lines changed: 47 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -25,63 +25,66 @@ satus.storage.import(function (items) {
2525
language = window.navigator.language;
2626
}
2727

28-
if (items.theme === 'dark') {
29-
document.body.setAttribute('theme', 'dark');
30-
}
31-
3228
satus.locale.import(language, function () {
3329
chrome.tabs.query({
3430
active: true,
3531
currentWindow: true
3632
}, function (tabs) {
37-
var tab = tabs[0],
38-
url = new URL(tab.url);
39-
40-
extension.hostname = url.hostname;
33+
chrome.tabs.sendMessage(tabs[0].id, {
34+
action: 'options-page-connected'
35+
}, function (response) {
36+
extension.hostname = response || '';
4137

42-
if (
43-
tab.url.startsWith('about:') ||
44-
tab.url.startsWith('chrome') ||
45-
tab.url.startsWith('edge') ||
46-
tab.url.startsWith('https://addons.mozilla.org') ||
47-
tab.url.startsWith('https://chrome.google.com/webstore') ||
48-
tab.url.startsWith('https://microsoftedge.microsoft.com/addons') ||
49-
tab.url.startsWith('moz') ||
50-
tab.url.startsWith('view-source:') ||
51-
tab.url.endsWith('.pdf')
52-
) {
53-
extension.skeleton.main.layers.toolbar = {
54-
component: 'alert',
55-
variant: 'error',
56-
text: function () {
57-
return satus.locale.get('thePageHOSTNAMEIsProtectedByBrowser').replace('HOSTNAME', url.protocol + '//' + url.hostname);
58-
}
59-
};
60-
} else {
61-
extension.skeleton.main.layers.toolbar = {
62-
component: 'alert',
63-
variant: 'success',
38+
if (!response) {
39+
extension.skeleton.main.layers.toolbar = {
40+
component: 'alert',
41+
variant: 'error',
42+
text: function () {
43+
return satus.locale.get('somethingWentWrongTryReloadingThePage');
44+
}
45+
};
46+
} else if (
47+
response.startsWith('about:') ||
48+
response.startsWith('chrome') ||
49+
response.startsWith('edge') ||
50+
response.startsWith('https://addons.mozilla.org') ||
51+
response.startsWith('https://chrome.google.com/webstore') ||
52+
response.startsWith('https://microsoftedge.microsoft.com/addons') ||
53+
response.startsWith('moz') ||
54+
response.startsWith('view-source:') ||
55+
response.endsWith('.pdf')
56+
) {
57+
extension.skeleton.main.layers.toolbar = {
58+
component: 'alert',
59+
variant: 'error',
60+
text: function () {
61+
return satus.locale.get('thePageHOSTNAMEisProtectedByBrowser').replace('HOSTNAME', response);
62+
}
63+
};
64+
} else {
65+
extension.skeleton.main.layers.toolbar = {
66+
component: 'alert',
67+
variant: 'success',
6468

65-
switch: {
66-
component: 'switch',
67-
text: url.hostname,
68-
storage: 'websites/' + extension.hostname + '/active',
69-
value: true
70-
}
71-
};
72-
}
69+
switch: {
70+
component: 'switch',
71+
text: response,
72+
storage: 'websites/' + response + '/active',
73+
value: true
74+
}
75+
};
76+
}
7377

74-
satus.render(extension.skeleton);
78+
satus.render(extension.skeleton);
7579

76-
extension.exportSettings();
77-
extension.importSettings();
80+
extension.exportSettings();
81+
extension.importSettings();
82+
});
7883
});
7984
}, '_locales/');
8085
});
8186

82-
chrome.runtime.sendMessage({
83-
action: 'options-page-connected'
84-
}, function (response) {
87+
chrome.runtime.sendMessage('options-page-connected', function (response) {
8588
if (response && response.isTab) {
8689
document.body.setAttribute('tab', '');
8790
}

options-page/skeleton.js

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@
1111
--------------------------------------------------------------*/
1212

1313
extension.skeleton = {
14-
component: 'base'
14+
component: 'base',
15+
attr: {
16+
theme: function () {
17+
return satus.storage.get('theme') || 'light';
18+
}
19+
}
1520
};
1621

1722

@@ -76,6 +81,13 @@ extension.skeleton.header = {
7681
style: {
7782
height: 'auto',
7883
margin: '0 0 12px'
84+
},
85+
on: {
86+
render: function () {
87+
if (extension.hostname.length === 0) {
88+
this.style.display = 'none';
89+
}
90+
}
7991
}
8092
},
8193
separate: {
@@ -100,11 +112,23 @@ extension.skeleton.header = {
100112
satus.empty(extension.skeleton.main.layers.section.rendered);
101113

102114
satus.render(extension.skeleton.main.layers.rendered.path[0].section, extension.skeleton.main.layers.section.rendered, undefined, true);
115+
},
116+
render: function () {
117+
if (extension.hostname.length === 0) {
118+
this.style.display = 'none';
119+
}
103120
}
104121
}
105122
},
106123
divider: {
107-
component: 'divider'
124+
component: 'divider',
125+
on: {
126+
render: function () {
127+
if (extension.hostname.length === 0) {
128+
this.style.display = 'none';
129+
}
130+
}
131+
}
108132
},
109133
theme: {
110134
component: 'select',
@@ -126,9 +150,9 @@ extension.skeleton.header = {
126150
on: {
127151
change: function () {
128152
if (this.storage.value === 'dark') {
129-
document.body.setAttribute('theme', 'dark');
153+
extension.skeleton.rendered.setAttribute('theme', 'dark');
130154
} else {
131-
document.body.removeAttribute('theme');
155+
extension.skeleton.rendered.removeAttribute('theme');
132156
}
133157
}
134158
},

0 commit comments

Comments
 (0)