| Index: lib/options.js | 
| =================================================================== | 
| --- a/lib/options.js | 
| +++ b/lib/options.js | 
| @@ -21,7 +21,6 @@ | 
|  | 
| const {getDecodedHostname} = require("url"); | 
| const {checkWhitelisted} = require("whitelisting"); | 
| -const {port} = require("messaging"); | 
| const info = require("info"); | 
|  | 
| const optionsUrl = "options.html"; | 
| @@ -107,17 +106,26 @@ | 
| if (!tab) | 
| return; | 
|  | 
| -      function onMessage(message, sender) | 
| +      function onMessage(message, port) | 
| { | 
| -        if (message.type == "app.listen" && | 
| -            sender.page && sender.page.id == tab.id) | 
| -        { | 
| -          port.off("app.listen", onMessage); | 
| -          callback(new ext.Page(tab)); | 
| -        } | 
| +        if (message.type != "app.listen") | 
| +          return; | 
| + | 
| +        port.onMessage.removeListener(onMessage); | 
| +        callback(new ext.Page(tab)); | 
| } | 
|  | 
| -      port.on("app.listen", onMessage); | 
| +      function onConnect(port) | 
| +      { | 
| +        let {name, sender} = port; | 
| +        if (name != "ui" || !sender || sender.tab.id != tab.id) | 
| +          return; | 
| + | 
| +        browser.runtime.onConnect.removeListener(onConnect); | 
| +        port.onMessage.addListener(onMessage); | 
| +      } | 
| + | 
| +      browser.runtime.onConnect.addListener(onConnect); | 
| }); | 
| } | 
| } | 
|  |