@@ -37,11 +37,20 @@ var restoreUserDataFromFile = function() {
3737 if ( inputElem . length === 0 ) {
3838 return ;
3939 }
40- var setupUrl = chrome . runtime . getURL ( inputElem . val ( ) ) ;
40+ var setupUrl = inputElem . val ( ) ;
41+
42+ var restartCountdown = 4 ;
43+ var doCountdown = function ( ) {
44+ restartCountdown -= 1 ;
45+ if ( restartCountdown > 0 ) {
46+ return ;
47+ }
48+ chrome . runtime . reload ( ) ;
49+ } ;
4150
4251 var restoreBackup = function ( data ) {
4352 var httpsb = getHTTPSB ( ) ;
44- chrome . storage . local . set ( data . userSettings ) ;
53+ chrome . storage . local . set ( data . userSettings , doCountdown ) ;
4554 var store = {
4655 'version' : data . version ,
4756 'scopes' : data . scopes
@@ -51,9 +60,9 @@ var restoreUserDataFromFile = function() {
5160 if ( data . remoteBlacklists !== undefined ) {
5261 store . remoteBlacklists = data . remoteBlacklists ;
5362 }
54- chrome . storage . local . set ( store ) ;
55- httpsb . assets . put ( httpsb . userBlacklistPath , data . ubiquitousBlacklist , 'restoreUserDataFromFileUserRestartCountdown' ) ;
56- httpsb . assets . put ( httpsb . userWhitelistPath , data . ubiquitousWhitelist , 'restoreUserDataFromFileUserRestartCountdown' ) ;
63+ chrome . storage . local . set ( store , doCountdown ) ;
64+ httpsb . assets . put ( httpsb . userBlacklistPath , data . ubiquitousBlacklist , doCountdown ) ;
65+ httpsb . assets . put ( httpsb . userWhitelistPath , data . ubiquitousWhitelist , doCountdown ) ;
5766 } ;
5867
5968 var validateBackup = function ( s ) {
@@ -76,8 +85,11 @@ var restoreUserDataFromFile = function() {
7685 return data ;
7786 } ;
7887
79- var onLoadHandler = function ( ) {
80- var data = validateBackup ( this . responseText ) ;
88+ var onLoadHandler = function ( details ) {
89+ if ( details . error ) {
90+ return ;
91+ }
92+ var data = validateBackup ( details . content ) ;
8193 if ( ! data ) {
8294 return ;
8395 }
@@ -89,36 +101,7 @@ var restoreUserDataFromFile = function() {
89101 }
90102 } ;
91103
92- var getSetupDataFromURL = function ( url , onLoad , onError ) {
93- // console.log('HTTP Switchboard> getTextFileFromURL("%s"):', url);
94- var xhr = new XMLHttpRequest ( ) ;
95- xhr . responseType = 'text' ;
96- xhr . onload = onLoad ;
97- xhr . onerror = onError ;
98- xhr . ontimeout = onError ;
99- xhr . open ( 'get' , url , true ) ;
100- xhr . send ( ) ;
101- } ;
102-
103-
104- var restartCountdown = 2 ;
105- var onMessageHandler = function ( request ) {
106- if ( ! request || ! request . what ) {
107- return ;
108- }
109- if ( request . what === 'restoreUserDataFromFileUserRestartCountdown' ) {
110- restartCountdown -= 1 ;
111- if ( restartCountdown > 0 ) {
112- return ;
113- }
114- }
115- chrome . runtime . onMessage . removeListener ( onMessageHandler ) ;
116- chrome . runtime . reload ( ) ;
117- } ;
118-
119- chrome . runtime . onMessage . addListener ( onMessageHandler ) ;
120-
121- getSetupDataFromURL ( setupUrl , onLoadHandler , function ( ) { } ) ;
104+ getHTTPSB ( ) . assets . get ( setupUrl , onLoadHandler ) ;
122105} ;
123106
124107$ ( '.setup img' ) . on ( 'click' , restoreUserDataFromFile ) ;
0 commit comments