Skip to content

Commit

Permalink
#367 FF bootstrap
Browse files Browse the repository at this point in the history
  • Loading branch information
Mizzick committed Oct 6, 2016
1 parent 535a542 commit e6b4895
Show file tree
Hide file tree
Showing 7 changed files with 88 additions and 114 deletions.
3 changes: 2 additions & 1 deletion Extension/browser/firefox/background.html
Expand Up @@ -7,13 +7,14 @@
<script type="text/javascript" src="lib/background-page.js"></script>

<!--<script type="text/javascript" src="lib/require.js"></script>-->
<script type="text/javascript" src="lib/utils/local-storage.js"></script>
<script type="text/javascript" src="lib/prefs.js"></script>

<script type="text/javascript" src="lib/utils/sha256.patched.js"></script>
<script type="text/javascript" src="lib/utils/promises.js"></script>
<script type="text/javascript" src="lib/utils/punycode.js"></script>
<script type="text/javascript" src="lib/utils/file-storage.js"></script>
<script type="text/javascript" src="lib/utils/local-storage.js"></script>
<!--<script type="text/javascript" src="lib/utils/local-storage.js"></script>-->
<script type="text/javascript" src="lib/utils/rules-storage.js"></script>
<script type="text/javascript" src="lib/utils/local-script-rules.js"></script>
<script type="text/javascript" src="lib/utils/workaround.js"></script>
Expand Down
76 changes: 41 additions & 35 deletions Extension/browser/firefox/lib/prefs.js
Expand Up @@ -14,38 +14,42 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Adguard Browser Extension. If not, see <http://www.gnu.org/licenses/>.
*/
var self = require('sdk/self');
var platform = require('sdk/system').platform;
var simplePrefs = require('sdk/simple-prefs');
var unload = require('sdk/system/unload');

var EventNotifier = require('./utils/notifier').EventNotifier;
var EventNotifierTypes = require('./utils/common').EventNotifierTypes;
/* global Components, exports, LS */

//var self = require('sdk/self');
//var platform = require('sdk/system').platform;
//var simplePrefs = require('sdk/simple-prefs');
//var unload = require('sdk/system/unload');

//var EventNotifier = require('./utils/notifier').EventNotifier;
//var EventNotifierTypes = require('./utils/common').EventNotifierTypes;

var locale = (function () {
return Components.classes["@mozilla.org/chrome/chrome-registry;1"].getService(Components.interfaces.nsIXULChromeRegistry).getSelectedLocale('global');
})();

/**
* Global preferences for Firefox extension
* TODO: FF Fix Prefs
*/
var Prefs = exports.Prefs = {
appId: self.id,
version: self.version,
//appId: self.id,
//version: self.version,
locale: locale,
getLocalFilterPath: function (filterId) {
var url = "filters/filter_" + filterId + ".txt";
return self.data.url(url);
},
getLocalMobileFilterPath: function (filterId) {
var url = "filters/filter_mobile_" + filterId + ".txt";
return self.data.url(url);
},
localGroupsMetadataPath: self.data.url('filters/groups.xml'),
localFiltersMetadataPath: self.data.url('filters/filters.xml'),
//getLocalFilterPath: function (filterId) {
// var url = "filters/filter_" + filterId + ".txt";
// return self.data.url(url);
//},
//getLocalMobileFilterPath: function (filterId) {
// var url = "filters/filter_mobile_" + filterId + ".txt";
// return self.data.url(url);
//},
//localGroupsMetadataPath: self.data.url('filters/groups.xml'),
//localFiltersMetadataPath: self.data.url('filters/filters.xml'),
safebrowsingPagePath: 'sb.html',
platform: "firefox",
mobile: platform.indexOf('android') > -1,
mobile: window.navigator.platform.indexOf('android') > -1,
getBrowser: function () {
if (!Prefs.browser) {
var browser;
Expand All @@ -58,21 +62,23 @@ var Prefs = exports.Prefs = {
}
return Prefs.browser;
},
speedupStartup: function () {
return simplePrefs.prefs['speedup_startup'];
},
collapseByContentScript: simplePrefs.prefs['collapse_by_content_script'],
useGlobalStyleSheet: simplePrefs.prefs['use_global_style_sheet']
speedupStartup: function () {
return LS.getItem('speedup_startup');
},
collapseByContentScript: LS.getItem('collapse_by_content_script'),
useGlobalStyleSheet: LS.getItem('use_global_style_sheet')
};

var onPreferenceChanged = function(prefName) {
Prefs.collapseByContentScript = simplePrefs.prefs['collapse_by_content_script'];
Prefs.useGlobalStyleSheet = simplePrefs.prefs['use_global_style_sheet'];
EventNotifier.notifyListeners(EventNotifierTypes.CHANGE_PREFS, prefName);
};
simplePrefs.on('collapse_by_content_script', onPreferenceChanged);
simplePrefs.on('use_global_style_sheet', onPreferenceChanged);
unload.when(function() {
simplePrefs.removeListener('collapse_by_content_script', onPreferenceChanged);
simplePrefs.removeListener('use_global_style_sheet', onPreferenceChanged);
});
//var onPreferenceChanged = function(prefName) {
// Prefs.collapseByContentScript = LS.getItem('collapse_by_content_script');
// Prefs.useGlobalStyleSheet = LS.getItem('use_global_style_sheet');
// EventNotifier.notifyListeners(EventNotifierTypes.CHANGE_PREFS, prefName);
//};

//simplePrefs.on('collapse_by_content_script', onPreferenceChanged);
//simplePrefs.on('use_global_style_sheet', onPreferenceChanged);
//
//unload.when(function() {
// simplePrefs.removeListener('collapse_by_content_script', onPreferenceChanged);
// simplePrefs.removeListener('use_global_style_sheet', onPreferenceChanged);
//});
56 changes: 29 additions & 27 deletions Extension/browser/firefox/lib/utils/local-storage.js
Expand Up @@ -15,40 +15,42 @@
* along with Adguard Browser Extension. If not, see <http://www.gnu.org/licenses/>.
*/

//Components.utils.import("resource://gre/modules/Services.jsm");
//
//var SimplePrefs = require('sdk/simple-prefs');
//var Log = require('../../lib/utils/log').Log;
//
//var self = require('sdk/self');
/* global exports, Components */

/**
* Local storage adapter
*/
var LS = exports.LS = {

storage: SimplePrefs.prefs,
branch: Services.prefs.getBranch('extensions.' + self.id + '.'),
var LS = exports.LS = {

getItem: function (key) {
return this.storage[key];
},
branch: Services.prefs.getBranch('extensions.' + location.host + '.'),
str: Components.classes['@mozilla.org/supports-string;1']
.createInstance(Components.interfaces.nsISupportsString),

setItem: function (key, value) {
try {
this.storage[key] = value;
} catch (ex) {
Log.error("Error save item cause: {0}", ex);
}
},
getItem: function (key) {
try {
return this.branch.getComplexValue(
key,
Components.interfaces.nsISupportsString
).data;
} catch (ex) {
return null;
}
},

removeItem: function (key) {
this.branch.clearUserPref(key);
},
setItem: function (key, value) {
this.str.data = value;
this.branch.setComplexValue(
key,
Components.interfaces.nsISupportsString,
this.str
);
},

clean: function () {
for (var key in this.storage) {
this.removeItem(key);
}
}
removeItem: function (key) {
this.branch.clearUserPref(key);
},
clean: function () {
this.branch.deleteBranch('');
}
};
29 changes: 4 additions & 25 deletions Extension/lib/filter/update-service.js
Expand Up @@ -15,27 +15,13 @@
* along with Adguard Browser Extension. If not, see <http://www.gnu.org/licenses/>.
*/

/**
* Initializing required libraries for this file.
* require method is overridden in Chrome extension (port/require.js).
*/
//var Log = require('../../lib/utils/log').Log;
//var Utils = require('../../lib/utils/browser-utils').Utils;
//var LS = require('../../lib/utils/local-storage').LS;
//var Prefs = require('../../lib/prefs').Prefs;
//var AntiBannerFiltersId = require('../../lib/utils/common').AntiBannerFiltersId;
//var RulesStorage = require('../../lib/utils/rules-storage').RulesStorage;
//var FilterStorage = require('../../lib/filter/storage').FilterStorage;
//var CollectionUtils = require('../../lib/utils/common').CollectionUtils;
//var Promise = require('../../lib/utils/promises').Promise;
//var filterRulesHitCount = require('../../lib/filter/filters-hit').filterRulesHitCount;
//var simpleStorage = require('sdk/simple-storage');
/* global exports, Prefs, Utils, LS, Log, AntiBannerFiltersId, RulesStorage, FilterStorage, CollectionUtils, Promise, filterRulesHitCount */

/**
* Service that manages extension version information and handles
* extension update. For instance we may need to change storage schema on update.
*/
exports.ApplicationUpdateService = {
var ApplicationUpdateService = exports.ApplicationUpdateService = {

/**
* Returns extension run info
Expand Down Expand Up @@ -175,7 +161,7 @@ exports.ApplicationUpdateService = {

Log.info('Call update to version 1.0.3.0');

if ('adguard-filters' in LS.storage) {
if (LS.getItem('adguard-filters') != null) {
this._saveInstalledFiltersOnUpdate();
this._saveFiltersVersionInfoOnUpdate();
LS.removeItem('adguard-filters');
Expand Down Expand Up @@ -271,14 +257,7 @@ exports.ApplicationUpdateService = {

var dfd = new Promise();

var ss = simpleStorage.storage;
for (var k in ss) {
if (ss.hasOwnProperty(k)) {
var v = ss[k];
LS.setItem(k, v);
delete ss[k];
}
}
//TODO: Remove

dfd.resolve();
return dfd;
Expand Down
16 changes: 3 additions & 13 deletions Extension/lib/utils/browser-utils.js
Expand Up @@ -15,22 +15,12 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Adguard Browser Extension. If not, see <http://www.gnu.org/licenses/>.
*/
/* global require, exports, i18n */

//var Cu = require('chrome').Cu;
//var Cc = require('chrome').Cc;
//var Ci = require('chrome').Ci;
//var setTimeout = require('sdk/timers').setTimeout; // jshint ignore: line
//var clearTimeout = require('sdk/timers').clearTimeout; // jshint ignore: line
//Cu.import("resource://gre/modules/Services.jsm");
//
//var LS = require('../../lib/utils/local-storage').LS;
//var Prefs = require('../../lib/prefs').Prefs;
//var RequestTypes = require('../../lib/utils/common').RequestTypes;

/* global exports, Components, i18n, LS, Prefs, RequestTypes */

var Utils = exports.Utils = {

navigator: Cc["@mozilla.org/network/protocol;1?name=http"].getService(Ci.nsIHttpProtocolHandler),
navigator: Components.classes["@mozilla.org/network/protocol;1?name=http"].getService(Components.interfaces.nsIHttpProtocolHandler),

objectContentTypes: '.jar.swf.',
mediaContentTypes: '.mp4.flv.avi.m3u.webm.mpeg.3gp.3gpp.3g2.3gpp2.ogg.mov.qt.',
Expand Down
1 change: 1 addition & 0 deletions Extension/lib/utils/promises.js
Expand Up @@ -15,6 +15,7 @@
* along with Adguard Browser Extension. If not, see <http://www.gnu.org/licenses/>.
*/

//TODO: FF Fix drop addon-sdk
//var defer = require('sdk/core/promise').defer;
//var deferAll = require('sdk/core/promise').all;

Expand Down
21 changes: 8 additions & 13 deletions Extension/lib/utils/user-settings.js
Expand Up @@ -14,16 +14,8 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Adguard Browser Extension. If not, see <http://www.gnu.org/licenses/>.
*/
/* global require, exports */
/**
* Initializing required libraries for this file.
* require method is overridden in Chrome extension (port/require.js).
*/
//var Utils = require('../../lib/utils/browser-utils').Utils;
//var LS = require('../../lib/utils/local-storage').LS;
//var Log = require('../../lib/utils/log').Log;
//var EventNotifier = require('../../lib/utils/notifier').EventNotifier;
//var EventNotifierTypes = require('../../lib/utils/common').EventNotifierTypes;

/* global exports, Utils, LS, Log, EventNotifier, EventNotifierTypes */

/**
* Object that manages user settings.
Expand All @@ -49,6 +41,7 @@ var UserSettings = function () {
for (var name in this.settings) { // jshint ignore: line
this.defaultProperties[this.settings[name]] = false;
}

this.defaultProperties[this.settings.DISABLE_SHOW_ADGUARD_PROMO_INFO] = (!Utils.isWindowsOs() && !Utils.isMacOs()) || Utils.isEdgeBrowser();
this.defaultProperties[this.settings.DISABLE_SAFEBROWSING] = true;
this.defaultProperties[this.settings.DISABLE_COLLECT_HITS] = true;
Expand All @@ -59,6 +52,7 @@ var UserSettings = function () {
this.properties = Object.create(null);
};


UserSettings.prototype.getProperty = function (propertyName) {

if (propertyName in this.properties) {
Expand All @@ -67,9 +61,10 @@ UserSettings.prototype.getProperty = function (propertyName) {

var propertyValue = null;

if (propertyName in LS.storage) {
var storedValue = LS.getItem(propertyName);
if (storedValue != null) {
try {
propertyValue = JSON.parse(LS.getItem(propertyName));
propertyValue = JSON.parse(storedValue);
} catch (ex) {
Log.error('Error get property {0}, cause: {1}', propertyName, ex);
}
Expand Down Expand Up @@ -167,7 +162,7 @@ UserSettings.prototype.getAllSettings = function () {

var result = {
names: Object.create(null),
values: Object.create(null),
values: Object.create(null)
};

for (var key in this.settings) {
Expand Down

0 comments on commit e6b4895

Please sign in to comment.