diff --git a/src/.jshintrc b/.jshintrc
similarity index 100%
rename from src/.jshintrc
rename to .jshintrc
diff --git a/meta/config.json b/meta/config.json
index 8d9af82c4..6bae27b02 100644
--- a/meta/config.json
+++ b/meta/config.json
@@ -16,7 +16,10 @@
},
"safariextz": {
"app_id": "net.gorhill.uBlock",
- "manifest": "Info.plist",
+ "manifest": {
+ "Info": "Info.plist",
+ "Settings": "Settings.plist"
+ },
"file_ext": ".safariextz",
"developer_identifier": "",
"cert_dir": "../meta/safariextz/certs/",
diff --git a/meta/safariextz/Settings.plist b/meta/safariextz/Settings.plist
new file mode 100644
index 000000000..40cc1ff16
--- /dev/null
+++ b/meta/safariextz/Settings.plist
@@ -0,0 +1,22 @@
+
+
+
+
+
+ DefaultValue
+
+ FalseValue
+
+ Key
+ open_prefs
+ Secure
+
+ Title
+ Click to see the Preferences
+ TrueValue
+
+ Type
+ CheckBox
+
+
+
diff --git a/src/Info.plist b/src/Info.plist
index bcb06731b..2ac5baa23 100644
--- a/src/Info.plist
+++ b/src/Info.plist
@@ -15,7 +15,7 @@
CFBundleShortVersionString
0.7.0.9
CFBundleVersion
- 1455205
+ 1455425
Chrome
Database Quota
diff --git a/src/Settings.plist b/src/Settings.plist
new file mode 100644
index 000000000..40cc1ff16
--- /dev/null
+++ b/src/Settings.plist
@@ -0,0 +1,22 @@
+
+
+
+
+
+ DefaultValue
+
+ FalseValue
+
+ Key
+ open_prefs
+ Secure
+
+ Title
+ Click to see the Preferences
+ TrueValue
+
+ Type
+ CheckBox
+
+
+
diff --git a/src/js/vapi-background.js b/src/js/vapi-background.js
index cad732e02..b5502faa8 100644
--- a/src/js/vapi-background.js
+++ b/src/js/vapi-background.js
@@ -287,6 +287,12 @@ if (self.chrome) {
]
);
+ safari.extension.settings.addEventListener('change', function(e) {
+ if (e.key === 'open_prefs') {
+ vAPI.tabs.open({url: 'dashboard.html', active: true});
+ }
+ }, false);
+
vAPI.storage = {
_storage: safari.extension.settings,
diff --git a/src/js/vapi-client.js b/src/js/vapi-client.js
index 0b9e22e48..26c0b0858 100644
--- a/src/js/vapi-client.js
+++ b/src/js/vapi-client.js
@@ -56,10 +56,10 @@ if (self.chrome) {
vAPI.chrome = true;
vAPI.messaging = {
port: null,
+ channels: {},
+ listeners: {},
requestId: 0,
connectorId: uniqueId(),
- listeners: {},
- channels: {},
connector: messagingConnector,
setup: function() {
this.port = chrome.runtime.connect({name: this.connectorId});
@@ -111,10 +111,10 @@ if (self.chrome) {
// relevant?
// https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/MessagesandProxies/MessagesandProxies.html#//apple_ref/doc/uid/TP40009977-CH14-SW12
vAPI.messaging = {
- connectorId: uniqueId(),
- requestId: 0,
- listeners: {},
channels: {},
+ listeners: {},
+ requestId: 0,
+ connectorId: uniqueId(),
connector: messagingConnector,
setup: function() {
this._connector = function(msg) {
diff --git a/tools/build_meta.py b/tools/build_meta.py
index 4aa2be136..8fe24d19a 100644
--- a/tools/build_meta.py
+++ b/tools/build_meta.py
@@ -5,7 +5,7 @@ import re
import json
from time import strftime
from datetime import datetime
-from shutil import rmtree as rmt
+from shutil import rmtree as rmt, copy
from collections import OrderedDict
from xml.sax.saxutils import escape
@@ -99,11 +99,13 @@ with open(pj(src_dir, vendors['crx']['manifest']), 'wt', encoding='utf-8', newli
)
-with open(pj(src_dir, vendors['safariextz']['manifest']), 'wt', encoding='utf-8', newline='\n') as f:
+with open(pj(src_dir, vendors['safariextz']['manifest']['Info']), 'wt', encoding='utf-8', newline='\n') as f:
config['app_id'] = vendors['safariextz']['app_id']
config['description'] = descriptions[config['def_lang']]
- with open(pj(meta_dir, 'safariextz', vendors['safariextz']['manifest']), 'r') as cf:
+ with open(pj(meta_dir, 'safariextz', vendors['safariextz']['manifest']['Info']), 'r') as cf:
cf_content = cf.read()
f.write(cf_content.format(**config))
+
+copy(pj(meta_dir, 'safariextz', vendors['safariextz']['manifest']['Settings']), pj(src_dir, vendors['safariextz']['manifest']['Settings']))