diff --git a/src/css/dashboard-common.css b/src/css/dashboard-common.css index b5025d84d..f5c3d161c 100644 --- a/src/css/dashboard-common.css +++ b/src/css/dashboard-common.css @@ -37,7 +37,9 @@ div > p:last-child { input[type="number"] { width: 5em; } - +input[type="checkbox"][disabled] + label { + opacity: 0.4; + } .para { width: 40em; } diff --git a/src/js/messaging.js b/src/js/messaging.js index fb8901118..e22fd65ff 100644 --- a/src/js/messaging.js +++ b/src/js/messaging.js @@ -648,16 +648,18 @@ vAPI.messaging.listen('elementPicker', onMessage); /******************************************************************************/ -var µb = µBlock; - -/******************************************************************************/ - var onMessage = function(request, sender, callback) { + // Cloud storage support is optional. + if ( vAPI.cloud instanceof Object === false ) { + callback(); + return; + } + // Async switch ( request.what ) { case 'cloudGetOptions': vAPI.cloud.getOptions(function(options) { - options.enabled = µb.userSettings.cloudStorageEnabled === true; + options.enabled = µBlock.userSettings.cloudStorageEnabled === true; callback(options); }); return; @@ -722,7 +724,8 @@ var getLocalData = function(callback) { lastRestoreFile: o.lastRestoreFile, lastRestoreTime: o.lastRestoreTime, lastBackupFile: o.lastBackupFile, - lastBackupTime: o.lastBackupTime + lastBackupTime: o.lastBackupTime, + cloudStorageSupported: vAPI.cloud instanceof Object }); }; diff --git a/src/js/settings.js b/src/js/settings.js index 77d0242e7..57dfd111a 100644 --- a/src/js/settings.js +++ b/src/js/settings.js @@ -138,6 +138,10 @@ var onLocalDataReceived = function(details) { uDom('#localData > ul > li:nth-of-type(3) > ul > li:nth-of-type(2)').text(lastRestoreFile); uDom('#localData > ul > li:nth-of-type(3)').css('display', ''); } + + if ( details.cloudStorageSupported === false ) { + uDom('#cloud-storage-enabled').attr('disabled', ''); + } }; /******************************************************************************/ diff --git a/src/js/start.js b/src/js/start.js index b5550fb4e..eae6fdbf9 100644 --- a/src/js/start.js +++ b/src/js/start.js @@ -67,12 +67,15 @@ var onAllReady = function() { // for launch time. µb.assets.remoteFetchBarrier -= 1; - vAPI.cloud.start([ - 'tpFiltersPane', - 'myFiltersPane', - 'myRulesPane', - 'whitelistPane' - ]); + // vAPI.cloud is optional. + if ( vAPI.cloud instanceof Object ) { + vAPI.cloud.start([ + 'tpFiltersPane', + 'myFiltersPane', + 'myRulesPane', + 'whitelistPane' + ]); + } //quickProfiler.stop(0);