@@ -161,12 +161,13 @@ const get_storage_quota = (METRIC) => new Promise(resolve => {
161
161
162
162
const get_permissions = ( item ) => new Promise ( resolve => {
163
163
const METRIC = 'permission_' + item
164
+ const aGood = [ 'denied' , 'granted' , 'prompt' ]
164
165
function exit ( display , value ) {
165
166
if ( value == undefined ) { value = display }
166
167
let notation = value == 'prompt' ? default_green : default_red
167
168
addBoth ( 6 , METRIC , display , '' , notation , value )
168
169
169
- if ( item === 'persistent-storage' && value === 'granted' ) {
170
+ if ( 'persistent-storage' == item && 'granted' == value ) {
170
171
// silent run manager to force granted quota when run
171
172
Promise . all ( [ get_storage_manager ( 0 ) ] ) . then ( function ( ) { return resolve ( ) } )
172
173
} else {
@@ -175,12 +176,18 @@ const get_permissions = (item) => new Promise(resolve => {
175
176
}
176
177
try {
177
178
navigator . permissions . query ( { name :item } ) . then ( function ( r ) {
178
- exit ( r . state )
179
+ let rstate = r . state
180
+ if ( runST ) { rstate = undefined } else if ( runSI ) { rstate = 'allowed' }
181
+ // checks
182
+ let typeCheck = typeFn ( rstate )
183
+ if ( 'string' !== typeCheck ) { throw zErrType + typeCheck }
184
+ if ( ! aGood . includes ( rstate ) ) { throw zErrInvalid + 'expected ' + aGood . join ( ', ' ) + ': got ' + rstate }
185
+ exit ( rstate )
179
186
} ) . catch ( e => {
180
- exit ( log_error ( 6 , METRIC , e ) , zErr )
187
+ exit ( e , zErrShort )
181
188
} )
182
189
} catch ( e ) {
183
- exit ( log_error ( 6 , METRIC , e ) , zErr )
190
+ exit ( e , zErrShort )
184
191
}
185
192
} )
186
193
0 commit comments