aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pages/options.coffee15
-rw-r--r--pages/options.html1
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>