| Index: background.js | 
| =================================================================== | 
| --- a/background.js | 
| +++ b/background.js | 
| @@ -73,7 +73,8 @@ | 
| addSubscription: false, | 
| filterError: false, | 
| downloadStatus: "synchronize_ok", | 
| -    showNotificationUI: false | 
| +    showNotificationUI: false, | 
| +    showPageOptions: false | 
| }; | 
| updateFromURL(params); | 
|  | 
| @@ -438,17 +439,32 @@ | 
| ]; | 
| let knownFilters = filters.map(modules.filterClasses.Filter.fromText); | 
|  | 
| +  let subscriptionServer = "https://easylist-downloads.adblockplus.org"; | 
| let subscriptions = [ | 
| -    "https://easylist-downloads.adblockplus.org/easylistgermany+easylist.txt", | 
| -    "https://easylist-downloads.adblockplus.org/exceptionrules.txt", | 
| -    "https://easylist-downloads.adblockplus.org/fanboy-social.txt", | 
| -    "~user~786254" | 
| +    { | 
| +      title: "EasyList Germany+EasyList", | 
| +      url: `${subscriptionServer}/easylistgermany+easylist.txt` | 
| +    }, | 
| +    { | 
| +      title: "Allow non-intrusive advertising", | 
| +      url: `${subscriptionServer}/exceptionrules.txt` | 
| +    }, | 
| +    { | 
| +      title: "Fanboy's Social Blocking List", | 
| +      url: `${subscriptionServer}/fanboy-social.txt` | 
| +    }, | 
| +    { | 
| +      title: null, | 
| +      url: "~user~786254" | 
| +    } | 
| ]; | 
| let knownSubscriptions = Object.create(null); | 
| -  for (let subscriptionUrl of subscriptions) | 
| +  for (let {title, url} of subscriptions) | 
| { | 
| -    knownSubscriptions[subscriptionUrl] = | 
| -      modules.subscriptionClasses.Subscription.fromURL(subscriptionUrl); | 
| +    let subscription = | 
| +      modules.subscriptionClasses.Subscription.fromURL(url); | 
| +    subscription.title = title; | 
| +    knownSubscriptions[url] = subscription; | 
| } | 
| let customSubscription = knownSubscriptions["~user~786254"]; | 
|  | 
| @@ -470,6 +486,32 @@ | 
| }, 1000); | 
| } | 
|  | 
| +  if (params.showPageOptions) | 
| +  { | 
| +    // We don't know how long it will take for the page to fully load | 
| +    // so we'll post the message after one second | 
| +    setTimeout(() => | 
| +    { | 
| +      let host = "example.com"; | 
| +      let isWhitelisted = customSubscription.filters | 
| +        .some((filter) => filter.text == `@@||${host}^$document`); | 
| +      window.postMessage({ | 
| +        type: "message", | 
| +        payload: { | 
| +          type: "app.open", | 
| +          what: "options", | 
| +          action: "showPageOptions", | 
| +          args: [ | 
| +            { | 
| +              host, | 
| +              whitelisted: isWhitelisted | 
| +            } | 
| +          ] | 
| +        } | 
| +      }, "*"); | 
| +    }, 1000); | 
| +  } | 
| + | 
| ext.devtools.onCreated.addListener((panel) => | 
| { | 
| // blocked request | 
|  |