Fix messaging for Safari

This commit is contained in:
Deathamns 2014-11-07 12:59:01 +01:00
parent 6f2e449e61
commit 30ef97a678
6 changed files with 16 additions and 110 deletions

View file

@ -210,6 +210,7 @@ var highlightElements = function(elems, force) {
var offx = window.pageXOffset; var offx = window.pageXOffset;
var offy = window.pageYOffset; var offy = window.pageYOffset;
var islands = []; var islands = [];
var elem, rect, poly; var elem, rect, poly;
for ( var i = 0; i < elems.length; i++ ) { for ( var i = 0; i < elems.length; i++ ) {
elem = elems[i]; elem = elems[i];

View file

@ -9,19 +9,9 @@ self.vAPI = self.vAPI || {};
if (/^www\.youtube(-nocookie)?\.com/.test(location.host)) { if (/^www\.youtube(-nocookie)?\.com/.test(location.host)) {
vAPI.sitePatch = function() { vAPI.sitePatch = function() {
var onWindowLoad = function() { // disable spf
this.removeEventListener('load', onWindowLoad, true); window.ytspf = {};
var spf = this._spf_state; Object.defineProperty(ytspf, 'enabled', {'value': false});
if (spf && (spf = spf.config)) {
spf['navigate-limit'] = 0;
spf['navigate-part-received-callback'] = function(url) {
window.location.href = url;
};
}
};
window.addEventListener('load', onWindowLoad, true);
// based on ExtendTube's ad removing solution // based on ExtendTube's ad removing solution
var p, yt = {}, config_ = {}, ytplayer = {}, playerConfig = { args: {} }; var p, yt = {}, config_ = {}, ytplayer = {}, playerConfig = { args: {} };

View file

@ -32,66 +32,6 @@
var exports = {}; var exports = {};
/******************************************************************************/
/*exports.gotoExtensionURL = function(url) {
var hasQuery = function(url) {
return url.indexOf('?') >= 0;
};
var removeQuery = function(url) {
var pos = url.indexOf('?');
if ( pos < 0 ) {
return url;
}
return url.slice(0, pos);
};
var removeFragment = function(url) {
var pos = url.indexOf('#');
if ( pos < 0 ) {
return url;
}
return url.slice(0, pos);
};
var tabIndex = 9999;
var targetUrl = vAPI.getURL(url);
var currentWindow = function(tabs) {
var updateProperties = { active: true };
var i = tabs.length;
while ( i-- ) {
if ( removeQuery(tabs[i].url) !== removeQuery(targetUrl) ) {
continue;
}
// If current tab in dashboard is different, force the new one, if
// there is one, to be activated.
if ( tabs[i].url !== targetUrl ) {
updateProperties.url = targetUrl;
}
chrome.tabs.update(tabs[i].id, updateProperties);
return;
}
chrome.tabs.create({ 'url': targetUrl, index: tabIndex + 1 });
};
var currentTab = function(tabs) {
if ( tabs.length ) {
tabIndex = tabs[0].index;
}
chrome.tabs.query({ currentWindow: true }, currentWindow);
};
// https://github.com/gorhill/httpswitchboard/issues/150
// Logic:
// - If URL is already opened in a tab, just activate tab
// - Otherwise find the current active tab and open in a tab immediately
// to the right of the active tab
chrome.tabs.query({ active: true }, currentTab);
};*/
/******************************************************************************/ /******************************************************************************/
exports.formatCount = function(count) { exports.formatCount = function(count) {

View file

@ -531,7 +531,7 @@ if (self.chrome) {
details.code = xhr.responseText; details.code = xhr.responseText;
} }
tab.page.dispatchMessage('message', { tab.page.dispatchMessage('broadcast', {
portName: 'vAPI', portName: 'vAPI',
msg: { msg: {
cmd: 'runScript', cmd: 'runScript',
@ -713,7 +713,7 @@ if (self.chrome) {
}; };
for (var tabId in vAPI.tabs.stack) { for (var tabId in vAPI.tabs.stack) {
vAPI.tabs.stack[tabId].page.dispatchMessage('message', message); vAPI.tabs.stack[tabId].page.dispatchMessage('broadcast', message);
} }
} }
}; };

View file

@ -121,7 +121,8 @@ if (self.chrome) {
// messages from the background script are sent to every frame, // messages from the background script are sent to every frame,
// so we need to check the connectorId to accept only // so we need to check the connectorId to accept only
// what is meant for the current context // what is meant for the current context
if (msg.name === vAPI.messaging.connectorId) { if (msg.name === vAPI.messaging.connectorId
|| msg.name === 'broadcast') {
vAPI.messaging.connector(msg.message); vAPI.messaging.connector(msg.message);
} }
}; };

View file

@ -27,8 +27,8 @@ def mkdirs(path):
return osp.exists(path) return osp.exists(path)
meta_dir = pj('meta')
src_dir = pj('src') src_dir = pj('src')
meta_dir = pj('meta')
with open(pj(meta_dir, 'config.json'), encoding='utf-8') as f: with open(pj(meta_dir, 'config.json'), encoding='utf-8') as f:
config = json.load(f) config = json.load(f)
@ -36,15 +36,10 @@ with open(pj(meta_dir, 'config.json'), encoding='utf-8') as f:
vendors = config['vendors'] vendors = config['vendors']
del config['vendors'] del config['vendors']
src_dir = pj('src')
source_locale_dir = pj('src', '_locales')
target_locale_dir = pj('src', 'locale')
descriptions = OrderedDict({})
tmp = datetime.now() - datetime(year=datetime.today().year, month=1, day=1) tmp = datetime.now() - datetime(year=datetime.today().year, month=1, day=1)
config['build_number'] = strftime('%y' + str(int(tmp.total_seconds() * 65535 / 31536000)).zfill(5)) config['build_number'] = strftime('%y' + str(int(tmp.total_seconds() * 65535 / 31536000)).zfill(5))
rmtree(target_locale_dir) descriptions = OrderedDict({})
with open(pj(src_dir, 'js', 'vapi-appinfo.js'), 'r+t', encoding='utf-8', newline='\n') as f: with open(pj(src_dir, 'js', 'vapi-appinfo.js'), 'r+t', encoding='utf-8', newline='\n') as f:
@ -58,25 +53,13 @@ with open(pj(src_dir, 'js', 'vapi-appinfo.js'), 'r+t', encoding='utf-8', newline
)) ))
for alpha2 in os.listdir(source_locale_dir): with open(pj(src_dir, vendors['crx']['manifest']), 'wt', encoding='utf-8', newline='\n') as f:
with open(pj(source_locale_dir, alpha2, 'messages.json'), encoding='utf-8') as f: with open(pj(meta_dir, 'crx', vendors['crx']['manifest']), 'r') as cf:
string_data = json.load(f, object_pairs_hook=OrderedDict) cf_content = cf.read()
alpha2 = alpha2.replace('_', '-') f.write(
re.sub(r"\{(?=\W)|(?<=\W)\}", r'\g<0>\g<0>', cf_content).format(**config)
mkdirs(pj(target_locale_dir, alpha2)) )
with open(pj(target_locale_dir, alpha2, 'messages.properties'), 'wt', encoding='utf-8', newline='\n') as f:
descriptions[alpha2] = {}
for string_name in string_data:
if string_name == 'extShortDesc':
descriptions[alpha2] = string_data[string_name]['message']
f.write(string_name)
f.write('=')
f.write(string_data[string_name]['message'].replace('\n', r'\n'))
f.write('\n')
with open(pj(src_dir, 'locales.json'), 'wt', encoding='utf-8', newline='\n') as f: with open(pj(src_dir, 'locales.json'), 'wt', encoding='utf-8', newline='\n') as f:
@ -90,15 +73,6 @@ with open(pj(src_dir, 'locales.json'), 'wt', encoding='utf-8', newline='\n') as
json.dump(tmp, f, sort_keys=True, ensure_ascii=False) json.dump(tmp, f, sort_keys=True, ensure_ascii=False)
with open(pj(src_dir, vendors['crx']['manifest']), 'wt', encoding='utf-8', newline='\n') as f:
with open(pj(meta_dir, 'crx', vendors['crx']['manifest']), 'r') as cf:
cf_content = cf.read()
f.write(
re.sub(r"\{(?=\W)|(?<=\W)\}", r'\g<0>\g<0>', cf_content).format(**config)
)
with open(pj(src_dir, vendors['safariextz']['manifest']['Info']), '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['app_id'] = vendors['safariextz']['app_id']
config['description'] = descriptions[config['def_lang']] config['description'] = descriptions[config['def_lang']]