From 5cd1285ee5675195b1c9e5b29c96be13968931e7 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Sat, 15 Nov 2014 16:15:11 -0200 Subject: [PATCH] further separate platform-specific code --- meta/crx/vapi-common.js | 87 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 meta/crx/vapi-common.js diff --git a/meta/crx/vapi-common.js b/meta/crx/vapi-common.js new file mode 100644 index 0000000..4656001 --- /dev/null +++ b/meta/crx/vapi-common.js @@ -0,0 +1,87 @@ +/******************************************************************************* + + µBlock - a Chromium browser extension to block requests. + Copyright (C) 2014 The µBlock authors + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see {http://www.gnu.org/licenses/}. + + Home: https://github.com/gorhill/uBlock +*/ + +// For background page or non-background pages + +/******************************************************************************/ + +(function() { + +'use strict'; + +self.vAPI = self.vAPI || {}; + +/******************************************************************************/ + +// http://www.w3.org/International/questions/qa-scripts#directions + +var setScriptDirection = function(language) { + document.body.setAttribute( + 'dir', + ~['ar', 'he', 'fa', 'ps', 'ur'].indexOf(language) ? 'rtl' : 'ltr' + ); +}; + +/******************************************************************************/ + +vAPI.download = function(details) { + if ( !details.url ) { + return; + } + + var a = document.createElement('a'); + + if ( 'download' in a ) { + a.href = details.url; + a.setAttribute('download', details.filename || ''); + a.dispatchEvent(new MouseEvent('click')); + return; + } + var messager = vAPI.messaging.channel('_download'); + messager.send({ + what: 'gotoURL', + details: { + url: details.url, + index: -1 + } + }); + messager.close(); +}; + +/******************************************************************************/ + +var chrome = self.chrome; + +vAPI.getURL = function(path) { + return chrome.runtime.getURL(path); +}; + +vAPI.i18n = function(s) { + return chrome.i18n.getMessage(s) || s; +}; + +setScriptDirection(vAPI.i18n('@@ui_locale')); + +/******************************************************************************/ + +})(); + +/******************************************************************************/