diff options
| -rw-r--r-- | pages/options.coffee | 15 | ||||
| -rw-r--r-- | pages/options.html | 1 | 
2 files changed, 8 insertions, 8 deletions
| diff --git a/pages/options.coffee b/pages/options.coffee index 0038c3f9..416b3ea7 100644 --- a/pages/options.coffee +++ b/pages/options.coffee @@ -333,15 +333,14 @@ DomUtils?.documentReady ->      backup = {}      for option in Option.all        backup[option.field] = option.readValueFromElement() -    blob = new Blob [ JSON.stringify backup ] -    url =  window.URL.createObjectURL blob -    a = document.createElement "a" -    document.body.appendChild a -    a.style = "display: none" +    # Create the blob in the background page so it isn't garbage collected when the page closes in FF. +    bgWin = chrome.extension.getBackgroundPage() +    blob = new bgWin.Blob [ JSON.stringify backup ] +    url =  bgWin.URL.createObjectURL blob +    a = $ "backupLink"      a.href = url -    a.download = "vimium-options-#{new Date().toISOString().split("T")[0]}.json" -    a.click() -    document.body.removeChild a +    a.style.display = "" +    a.click() unless Utils.isFirefox()    $("chooseFile").addEventListener "change", (event) ->      document.activeElement?.blur() diff --git a/pages/options.html b/pages/options.html index 943fc95c..79cb0999 100644 --- a/pages/options.html +++ b/pages/options.html @@ -327,6 +327,7 @@ b: http://b.com/?q=%s description                    </div>                  </div>                <input id="backupButton" type="button" value="Create Backup" /> +              <a id="backupLink" style="display: none" download="vimium-options.json">Download Backup</span>              </td>            </tr>            <tr> | 
