|
|
|
@ -95,14 +95,29 @@ var processUserRules = function(response) {
|
|
|
|
|
|
|
|
|
|
/******************************************************************************/
|
|
|
|
|
|
|
|
|
|
var fromRequestPolicy = function(content) {
|
|
|
|
|
// https://github.com/chrisaljoudi/uBlock/issues/757
|
|
|
|
|
// Support RequestPolicy rule syntax
|
|
|
|
|
var matches = /\[origins-to-destinations\]([^\[]+)/.exec(content);
|
|
|
|
|
if ( matches === null || matches.length !== 2 ) {
|
|
|
|
|
return content;
|
|
|
|
|
}
|
|
|
|
|
return matches[1].trim()
|
|
|
|
|
.replace(/\|/g, ' ')
|
|
|
|
|
.replace(/\n/g, ' * allow\n');
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/******************************************************************************/
|
|
|
|
|
|
|
|
|
|
function handleImportFilePicker() {
|
|
|
|
|
var fileReaderOnLoadHandler = function() {
|
|
|
|
|
if ( typeof this.result !== 'string' || this.result === '' ) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var result = fromRequestPolicy(this.result);
|
|
|
|
|
var request = {
|
|
|
|
|
'what': 'setUserRules',
|
|
|
|
|
'temporaryRules': rulesFromHTML('#diff .right li') + '\n' + this.result
|
|
|
|
|
'temporaryRules': rulesFromHTML('#diff .right li') + '\n' + result
|
|
|
|
|
};
|
|
|
|
|
messager.send(request, processUserRules);
|
|
|
|
|
};
|
|
|
|
|