Skip to content

Commit e339c8d

Browse files
committed
Only show welcome screen on new profile installs (#785)
1 parent 1cb3842 commit e339c8d

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

src/js/gsSession.js

+15-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ var gsSession = (function() {
88
const updateUrl = chrome.extension.getURL('update.html');
99
const updatedUrl = chrome.extension.getURL('updated.html');
1010

11-
let initialisationMode = false;
11+
let initialisationMode = true;
1212
let initPeriodInSeconds;
1313
let initTimeoutInSeconds;
1414
let sessionId;
@@ -20,6 +20,7 @@ var gsSession = (function() {
2020
let startupRecoveryTimeTakenInSeconds;
2121
let startupType;
2222
let startupLastVersion;
23+
let syncedSettingsOnInit;
2324

2425
function initAsPromised() {
2526
return new Promise(async function(resolve) {
@@ -126,6 +127,10 @@ var gsSession = (function() {
126127
return updateType;
127128
}
128129

130+
function setSynchedSettingsOnInit(syncedSettings) {
131+
syncedSettingsOnInit = syncedSettings;
132+
}
133+
129134
async function runStartupChecks() {
130135
initialisationMode = true;
131136
const currentSessionTabs = await gsChrome.tabsQuery();
@@ -182,9 +187,14 @@ var gsSession = (function() {
182187
async function handleNewInstall(curVersion) {
183188
gsStorage.setLastVersion(curVersion);
184189

185-
//show welcome message
186-
const optionsUrl = chrome.extension.getURL('options.html?firstTime');
187-
await gsChrome.tabsCreate(optionsUrl);
190+
// Try to determine if this is a new install for the computer or for the whole profile
191+
// If settings sync contains non-default options, then we can assume it's only
192+
// a new install for this computer
193+
if (!syncedSettingsOnInit || Object.keys(syncedSettingsOnInit).length === 0) {
194+
//show welcome message
195+
const optionsUrl = chrome.extension.getURL('options.html?firstTime');
196+
await gsChrome.tabsCreate(optionsUrl);
197+
}
188198
}
189199

190200
async function handleUpdate(currentSessionTabs, curVersion, lastVersion) {
@@ -970,6 +980,7 @@ var gsSession = (function() {
970980
getTabCheckTimeTakenInSeconds,
971981
getRecoveryTimeTakenInSeconds,
972982
getStartupType,
983+
setSynchedSettingsOnInit,
973984
getStartupLastVersion,
974985
recoverLostTabs,
975986
triggerDiscardOfAllTabs,

src/js/gsStorage.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*global chrome, gsAnalytics, localStorage, gsUtils */
1+
/*global chrome, gsAnalytics, gsSession, localStorage, gsUtils */
22
'use strict';
33

44
var gsStorage = {
@@ -72,6 +72,7 @@ var gsStorage = {
7272
var defaultKeys = Object.keys(defaultSettings);
7373
chrome.storage.sync.get(defaultKeys, function(syncedSettings) {
7474
gsUtils.log('gsStorage', 'syncedSettings on init: ', syncedSettings);
75+
gsSession.setSynchedSettingsOnInit(syncedSettings);
7576

7677
var rawLocalSettings;
7778
try {
@@ -293,7 +294,6 @@ var gsStorage = {
293294
);
294295
}
295296
},
296-
isNewInstall: function() {},
297297

298298
fetchNoticeVersion: function() {
299299
var lastNoticeVersion;

0 commit comments

Comments
 (0)