Skip to content

Commit

Permalink
https://github.com/AdguardTeam/AdguardBrowserExtension/issues/68
Browse files Browse the repository at this point in the history
Move logic to backgroung-page.
  • Loading branch information
atropnikov committed Dec 8, 2015
1 parent 71a9533 commit 2a297be
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 21 deletions.
4 changes: 0 additions & 4 deletions Extension/lib/content-message-handler.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,10 +111,6 @@ ContentMessageHandler.prototype = {
this.UI.checkAntiBannerFiltersUpdate();
callback({});
break;
case 'reloadAntiBannerFilters':
this.antiBannerService.reloadAntiBannerFilters();
callback({});
break;
case 'getAntiBannerFiltersForOptionsPage':
var renderedFilters = this.antiBannerService.getAntiBannerFiltersForOptionsPage();
callback({filters: renderedFilters});
Expand Down
38 changes: 25 additions & 13 deletions Extension/lib/filter/antibanner.js
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,9 @@ AntiBannerService.prototype = {
*/
UPDATE_FILTERS_DELAY: 5 * 60 * 1000,

FILTERS_CHANGE_DEBOUCE_PERIOD: 500,
RELOAD_FILTERS_DEBOUNCE_PERIOD: 500,

/**
* AntiBannerService constructor
* @param options Constructor options
Expand Down Expand Up @@ -164,6 +167,9 @@ AntiBannerService.prototype = {
// These mappings are then used by LocaleDetectorService to auto-enable language-specific filter.
this.localeDetectorService.setFiltersLanguages(this.subscriptionService.getFiltersLanguages());

// Subscribe to events which lead to update filters (e.g. switсh to optimized and back to default)
this._subscribeToFiltersChangeEvents();

if (runInfo.isFirstRun) {
// Add event listener for filters change
context._addFiltersChangeEventListener();
Expand Down Expand Up @@ -729,20 +735,9 @@ AntiBannerService.prototype = {
* @param errorCallback
* @private
*/
_reloadAntiBannerFilters: Utils.debounce(function(successCallback, errorCallback) {
_reloadAntiBannerFilters: function (successCallback, errorCallback) {
this._resetFiltersVersion();
this.checkAntiBannerFiltersUpdate(true, successCallback, errorCallback);
}, 250),

/**
* Reloads filters from backend
*/
reloadAntiBannerFilters: function () {
this._reloadAntiBannerFilters(function (updatedFilters) {
EventNotifier.notifyListeners(EventNotifierTypes.UPDATE_FILTERS_SHOW_POPUP, true, updatedFilters);
}, function () {
EventNotifier.notifyListeners(EventNotifierTypes.UPDATE_FILTERS_SHOW_POPUP, false);
})
},

/**
Expand Down Expand Up @@ -1112,7 +1107,7 @@ AntiBannerService.prototype = {
onEventsProcessDone();
}

}.bind(this), 500);
}.bind(this), this.FILTERS_CHANGE_DEBOUCE_PERIOD);

}.bind(this);

Expand Down Expand Up @@ -1179,6 +1174,22 @@ AntiBannerService.prototype = {
return dfd;
},

/**
* Subscribe to events which lead to filters update.
* @private
*/
_subscribeToFiltersChangeEvents: function () {

// on USE_OPTIMIZED_FILTERS setting change we need to reload filters
var onUsedOptimizedFiltersChange = Utils.debounce(this._reloadAntiBannerFilters.bind(this), this.RELOAD_FILTERS_DEBOUNCE_PERIOD);

EventNotifier.addListener(function (event, setting) {
if (event === EventNotifierTypes.CHANGE_USER_SETTINGS && setting === userSettings.settings.USE_OPTIMIZED_FILTERS) {
onUsedOptimizedFiltersChange();
}
});
},

/**
* Schedules filters update job
* @isFirstRun
Expand Down Expand Up @@ -1516,6 +1527,7 @@ var UPDATE_REQUEST_FILTER_EVENTS = [EventNotifierTypes.UPDATE_FILTER_RULES, Even
var SAVE_FILTER_RULES_TO_FS_EVENTS = [EventNotifierTypes.UPDATE_FILTER_RULES, EventNotifierTypes.ADD_RULE, EventNotifierTypes.ADD_RULES, EventNotifierTypes.REMOVE_RULE];

// Events
// TODO: move to UI.js.
(function () {

//on filter auto-enabled event
Expand Down
5 changes: 1 addition & 4 deletions Extension/lib/pages/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -368,13 +368,10 @@ PageController.prototype = {

changeUseOptimizedFilters: function (e) {
e.preventDefault();
var self = this;
contentPage.sendMessage({
type: 'changeUserSetting',
key: userSettings.names.USE_OPTIMIZED_FILTERS,
value: self.checked
}, function() {
contentPage.sendMessage({type: 'reloadAntiBannerFilters'});
value: this.checked
});
},

Expand Down

0 comments on commit 2a297be

Please sign in to comment.