| Index: ext/background.js | 
| =================================================================== | 
| --- a/ext/background.js | 
| +++ b/ext/background.js | 
| @@ -312,26 +312,16 @@ | 
| chrome.tabs.onActivated.addListener(details => | 
| { | 
| ext.pages.onActivated._dispatch(new Page({id: details.tabId})); | 
| }); | 
|  | 
|  | 
| /* Browser actions */ | 
|  | 
| -  // On Firefox for Android, open the options page directly when the browser | 
| -  // action is clicked. | 
| -  if (!("getPopup" in chrome.browserAction)) | 
| -  { | 
| -    chrome.browserAction.onClicked.addListener(() => | 
| -    { | 
| -      ext.showOptions(); | 
| -    }); | 
| -  } | 
| - | 
| let BrowserAction = function(tabId) | 
| { | 
| this._tabId = tabId; | 
| this._changes = null; | 
| }; | 
| BrowserAction.prototype = { | 
| _applyChanges() | 
| { | 
| @@ -698,94 +688,16 @@ | 
| }, | 
| remove(key, callback) | 
| { | 
| chrome.storage.local.remove(key, callback); | 
| }, | 
| onChanged: chrome.storage.onChanged | 
| }; | 
|  | 
| -  /* Options */ | 
| - | 
| -  ext.showOptions = callback => | 
| -  { | 
| -    let info = require("info"); | 
| - | 
| -    if ("openOptionsPage" in chrome.runtime && | 
| -        // Some versions of Firefox for Android before version 57 do have a | 
| -        // runtime.openOptionsPage but it doesn't do anything. | 
| -        // https://bugzilla.mozilla.org/show_bug.cgi?id=1364945 | 
| -        (info.application != "fennec" || | 
| -         parseInt(info.applicationVersion, 10) >= 57)) | 
| -    { | 
| -      if (!callback) | 
| -      { | 
| -        chrome.runtime.openOptionsPage(); | 
| -      } | 
| -      else | 
| -      { | 
| -        chrome.runtime.openOptionsPage(() => | 
| -        { | 
| -          if (chrome.runtime.lastError) | 
| -            return; | 
| - | 
| -          chrome.tabs.query({active: true, lastFocusedWindow: true}, tabs => | 
| -          { | 
| -            if (tabs.length > 0) | 
| -            { | 
| -              if (tabs[0].status == "complete") | 
| -                callback(new Page(tabs[0])); | 
| -              else | 
| -                afterTabLoaded(callback)(tabs[0]); | 
| -            } | 
| -          }); | 
| -        }); | 
| -      } | 
| -    } | 
| -    else if ("windows" in chrome) | 
| -    { | 
| -      // Edge does not yet support runtime.openOptionsPage (tested version 38) | 
| -      // and so this workaround needs to stay for now. | 
| -      // We are not using extension.getURL to get the absolute path here | 
| -      // because of the Edge issue: | 
| -      // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10276332/ | 
| -      let optionsUrl = "options.html"; | 
| -      let fullOptionsUrl = ext.getURL(optionsUrl); | 
| - | 
| -      chrome.tabs.query({}, tabs => | 
| -      { | 
| -        // We find a tab ourselves because Edge has a bug when quering tabs | 
| -        // with extension URL protocol: | 
| -        // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8094141/ | 
| -        // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8604703/ | 
| -        let tab = tabs.find(element => element.url == fullOptionsUrl); | 
| -        if (tab) | 
| -        { | 
| -          chrome.windows.update(tab.windowId, {focused: true}); | 
| -          chrome.tabs.update(tab.id, {active: true}); | 
| - | 
| -          if (callback) | 
| -            callback(new Page(tab)); | 
| -        } | 
| -        else | 
| -        { | 
| -          ext.pages.open(optionsUrl, callback); | 
| -        } | 
| -      }); | 
| -    } | 
| -    else | 
| -    { | 
| -      // Firefox for Android before version 57 does not support | 
| -      // runtime.openOptionsPage, nor does it support the windows API. Since | 
| -      // there is effectively only one window on the mobile browser, there's no | 
| -      // need to bring it into focus. | 
| -      ext.pages.open("options.html", callback); | 
| -    } | 
| -  }; | 
| - | 
| /* Windows */ | 
| ext.windows = { | 
| create(createData, callback) | 
| { | 
| chrome.windows.create(createData, createdWindow => | 
| { | 
| afterTabLoaded(callback)(createdWindow.tabs[0]); | 
| }); | 
|  |