Skip to content

Commit 6735b6f

Browse files
committed
close popup when opening new tabs
1 parent b56aade commit 6735b6f

File tree

2 files changed

+28
-18
lines changed

2 files changed

+28
-18
lines changed

js/options.js

+16-9
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11

2+
var queryString = getQueryString();
3+
24
Promise.all([
35
getVoices(),
46
getSettings(),
@@ -12,7 +14,6 @@ function initialize(allVoices, settings, acceptLangs) {
1214
updateDependents(settings);
1315

1416
//close button
15-
var queryString = getQueryString();
1617
if (queryString.referer) {
1718
$("button.close").show()
1819
.click(function() {
@@ -25,7 +26,7 @@ function initialize(allVoices, settings, acceptLangs) {
2526
.click(function() {
2627
getAuthToken({interactive: true})
2728
.then(function(token) {
28-
brapi.tabs.create({url: config.webAppUrl + "/premium-voices.html?t=" + token});
29+
createTabAndClosePopup(config.webAppUrl + "/premium-voices.html?t=" + token)
2930
})
3031
.catch(handleError)
3132
return false;
@@ -67,14 +68,13 @@ function initialize(allVoices, settings, acceptLangs) {
6768
.val(settings.voiceName || "")
6869
.change(function() {
6970
var voiceName = $(this).val();
70-
if (voiceName == "@custom") brapi.tabs.create({url: "custom-voices.html"});
71-
else if (voiceName == "@languages") brapi.tabs.create({url: "languages.html"});
72-
else if (voiceName == "@premium") brapi.tabs.create({url: "premium-voices.html"});
71+
if (voiceName == "@custom") createTabAndClosePopup("custom-voices.html")
72+
else if (voiceName == "@languages") createTabAndClosePopup("languages.html")
7373
else if (voiceName == "@piper") bgPageInvoke("managePiperVoices")
7474
else saveSettings({voiceName: voiceName});
7575
});
7676
$("#languages-edit-button").click(function() {
77-
brapi.tabs.create({url: "languages.html"});
77+
createTabAndClosePopup("languages.html")
7878
})
7979

8080

@@ -161,7 +161,7 @@ function initialize(allVoices, settings, acceptLangs) {
161161

162162
//hot key
163163
$("#hotkeys-link").click(function() {
164-
brapi.tabs.create({url: getHotkeySettingsUrl()});
164+
createTabAndClosePopup(getHotkeySettingsUrl())
165165
});
166166
}
167167

@@ -348,8 +348,7 @@ function handleError(err) {
348348
})
349349
break;
350350
case "#auth-wavenet":
351-
createTab(brapi.runtime.getURL("firefox-perm.html") + "?perms=" + encodeURIComponent(JSON.stringify(config.wavenetPerms)) + "&then=auth-wavenet")
352-
.then(() => window.close())
351+
createTabAndClosePopup("firefox-perm.html?perms=" + encodeURIComponent(JSON.stringify(config.wavenetPerms)) + "&then=auth-wavenet")
353352
break;
354353
case "#user-gesture":
355354
getBackgroundPage()
@@ -379,6 +378,14 @@ function showAccountInfo(account) {
379378
}
380379
}
381380

381+
function createTabAndClosePopup(url) {
382+
brapi.tabs.create({url})
383+
.then(() => {
384+
if (queryString.isPopup) window.close()
385+
})
386+
.catch(handleError)
387+
}
388+
382389

383390

384391
function createSlider(elem, defaultValue, onChange, onSlideChange) {

js/popup.js

+12-9
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,8 @@ function handleError(err) {
7676
$("#status").html(formatError(errInfo)).show();
7777
$("#status a").click(function() {
7878
switch ($(this).attr("href")) {
79-
case "#open-extension-settings":
80-
brapi.tabs.create({url: "chrome://extensions/?id=" + brapi.runtime.id});
81-
break;
8279
case "#request-permissions":
83-
createTab(brapi.runtime.getURL("firefox-perm.html") + "?perms=" + encodeURIComponent(JSON.stringify(errInfo.perms)))
84-
.then(() => window.close())
80+
createTabAndClosePopup("firefox-perm.html?perms=" + encodeURIComponent(JSON.stringify(errInfo.perms)))
8581
break;
8682
case "#sign-in":
8783
getBackgroundPage()
@@ -94,8 +90,7 @@ function handleError(err) {
9490
})
9591
break;
9692
case "#auth-wavenet":
97-
createTab(brapi.runtime.getURL("firefox-perm.html") + "?perms=" + encodeURIComponent(JSON.stringify(config.wavenetPerms)) + "&then=auth-wavenet")
98-
.then(() => window.close())
93+
createTabAndClosePopup("firefox-perm.html?perms=" + encodeURIComponent(JSON.stringify(config.wavenetPerms)) + "&then=auth-wavenet")
9994
break;
10095
case "#user-gesture":
10196
getBackgroundPage()
@@ -105,7 +100,7 @@ function handleError(err) {
105100
})
106101
break;
107102
case "#open-pdf-viewer":
108-
brapi.tabs.create({url: config.pdfViewerUrl})
103+
createTabAndClosePopup(config.pdfViewerUrl)
109104
break
110105
case "#connect-phone":
111106
location.href = "connect-phone.html"
@@ -118,6 +113,14 @@ function handleError(err) {
118113
}
119114
}
120115

116+
function createTabAndClosePopup(url) {
117+
brapi.tabs.create({url})
118+
.then(() => {
119+
if (queryString.isPopup) window.close()
120+
})
121+
.catch(handleError)
122+
}
123+
121124

122125

123126
function updateButtons() {
@@ -245,7 +248,7 @@ function onStop() {
245248
}
246249

247250
function onSettings() {
248-
location.href = "options.html?referer=popup.html";
251+
location.href = "options.html?referer=popup.html" + (queryString.isPopup ? "&isPopup=" + queryString.isPopup : "")
249252
}
250253

251254
function onForward() {

0 commit comments

Comments
 (0)