@@ -19,15 +19,15 @@ const _STATES = {
19
19
* Can transition to:
20
20
* - AWAITING_VISIBLE: `acquire` called when document is hidden.
21
21
* - ACQUIRING: `acquire` called.
22
- * - RELEASED : `acquired` called when the api is not available.
22
+ * - ERROR : `acquired` called when the api is not available.
23
23
*/
24
24
RELEASED : 'released' ,
25
25
/* Wake lock requested, waiting for browser.
26
26
*
27
27
* Can transition to:
28
28
* - ACQUIRED: success
29
29
* - ACQUIRING_WANT_RELEASE: `release` called while waiting
30
- * - RELEASED: On error
30
+ * - ERROR
31
31
*/
32
32
ACQUIRING : 'acquiring' ,
33
33
/* Wake lock requested, release called, still waiting for browser.
@@ -51,6 +51,12 @@ const _STATES = {
51
51
* - RELEASED: when release is called.
52
52
*/
53
53
AWAITING_VISIBLE : 'awaiting_visible' ,
54
+ /* An error has occurred.
55
+ *
56
+ * Can transition to:
57
+ * - RELEASED: will happen immediately.
58
+ */
59
+ ERROR : 'error' ,
54
60
} ;
55
61
56
62
export default class WakeLockManager {
@@ -77,6 +83,7 @@ export default class WakeLockManager {
77
83
case _STATES . ACQUIRING :
78
84
case _STATES . ACQUIRED :
79
85
break ;
86
+ case _STATES . ERROR :
80
87
case _STATES . RELEASED :
81
88
if ( document . hidden ) {
82
89
// We can not acquire the wakelock while the document is
@@ -92,6 +99,7 @@ export default class WakeLockManager {
92
99
93
100
release ( ) {
94
101
switch ( this . _state ) {
102
+ case _STATES . ERROR :
95
103
case _STATES . RELEASED :
96
104
case _STATES . ACQUIRING_WANT_RELEASE :
97
105
break ;
@@ -132,13 +140,15 @@ export default class WakeLockManager {
132
140
_acquireWakelockNow ( ) {
133
141
if ( ! ( "wakeLock" in navigator ) ) {
134
142
Log . Warn ( "Unable to request wakeLock, Browser does not have wakeLock api" ) ;
143
+ this . _transitionTo ( _STATES . ERROR ) ;
135
144
this . _transitionTo ( _STATES . RELEASED ) ;
136
145
return ;
137
146
}
138
147
navigator . wakeLock . request ( "screen" )
139
148
. then ( this . _eventHandlers . wakelockAcquired )
140
149
. catch ( ( err ) => {
141
150
Log . Warn ( "Error occurred while acquiring wakelock: " + err ) ;
151
+ this . _transitionTo ( _STATES . ERROR ) ;
142
152
this . _transitionTo ( _STATES . RELEASED ) ;
143
153
} ) ;
144
154
this . _transitionTo ( _STATES . ACQUIRING ) ;
@@ -148,7 +158,7 @@ export default class WakeLockManager {
148
158
_wakelockAcquired ( wakelock ) {
149
159
if ( this . _state === _STATES . ACQUIRING_WANT_RELEASE ) {
150
160
// We were requested to release the wakelock while we were trying to
151
- // acquire it. Now that we have acquired it, immediatly release it.
161
+ // acquire it. Now that we have acquired it, immediately release it.
152
162
wakelock . release ( ) ;
153
163
this . _transitionTo ( _STATES . RELEASED ) ;
154
164
return ;
0 commit comments