17
17
18
18
import { Persistence } from '../../model/public_types' ;
19
19
20
- import { getUA } from '@firebase/util' ;
21
- import {
22
- _isSafari ,
23
- _isIOS ,
24
- _isIframe ,
25
- _isMobileBrowser ,
26
- _isIE10
27
- } from '../../core/util/browser' ;
20
+ import { _isMobileBrowser , _isIE10 } from '../../core/util/browser' ;
28
21
import {
29
22
PersistenceInternal as InternalPersistence ,
30
23
PersistenceType ,
@@ -33,11 +26,6 @@ import {
33
26
} from '../../core/persistence' ;
34
27
import { BrowserPersistenceClass } from './browser' ;
35
28
36
- function _iframeCannotSyncWebStorage ( ) : boolean {
37
- const ua = getUA ( ) ;
38
- return _isSafari ( ua ) || _isIOS ( ua ) ;
39
- }
40
-
41
29
// The polling period in case events are not supported
42
30
export const _POLLING_INTERVAL_MS = 1000 ;
43
31
@@ -64,9 +52,6 @@ class BrowserLocalPersistence
64
52
// eslint-disable-next-line @typescript-eslint/no-explicit-any
65
53
private pollTimer : any | null = null ;
66
54
67
- // Safari or iOS browser and embedded in an iframe.
68
- private readonly safariLocalStorageNotSynced =
69
- _iframeCannotSyncWebStorage ( ) && _isIframe ( ) ;
70
55
// Whether to use polling instead of depending on window events
71
56
private readonly fallbackToPolling = _isMobileBrowser ( ) ;
72
57
readonly _shouldAllowMigration = true ;
@@ -112,26 +97,6 @@ class BrowserLocalPersistence
112
97
this . stopPolling ( ) ;
113
98
}
114
99
115
- // Safari embedded iframe. Storage event will trigger with the delta
116
- // changes but no changes will be applied to the iframe localStorage.
117
- if ( this . safariLocalStorageNotSynced ) {
118
- // Get current iframe page value.
119
- const storedValue = this . storage . getItem ( key ) ;
120
- // Value not synchronized, synchronize manually.
121
- if ( event . newValue !== storedValue ) {
122
- if ( event . newValue !== null ) {
123
- // Value changed from current value.
124
- this . storage . setItem ( key , event . newValue ) ;
125
- } else {
126
- // Current value deleted.
127
- this . storage . removeItem ( key ) ;
128
- }
129
- } else if ( this . localCache [ key ] === event . newValue && ! poll ) {
130
- // Already detected and processed, do not trigger listeners again.
131
- return ;
132
- }
133
- }
134
-
135
100
const triggerListeners = ( ) : void => {
136
101
// Keep local map up to date in case storage event is triggered before
137
102
// poll.
0 commit comments