Skip to content

Commit 84f9ff0

Browse files
authored
Firestore: simple_db.ts: move getAndroidVersion() to a free function (#8178)
1 parent 399ae5a commit 84f9ff0

File tree

4 files changed

+20
-14
lines changed

4 files changed

+20
-14
lines changed

.changeset/sharp-lizards-sit.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@firebase/firestore': patch
3+
'firebase': patch
4+
---
5+
6+
Reduce code bundle size by 6.5 kB in applications that only use memory persistence (the default persistence mode). This bundle size regression was accidentally introduced in v10.7.2.

packages/firestore/src/local/query_engine.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ import { LocalDocumentsView } from './local_documents_view';
4949
import { PersistencePromise } from './persistence_promise';
5050
import { PersistenceTransaction } from './persistence_transaction';
5151
import { QueryContext } from './query_context';
52-
import { SimpleDb } from './simple_db';
52+
import { getAndroidVersion } from './simple_db';
5353

5454
const DEFAULT_INDEX_AUTO_CREATION_MIN_COLLECTION_SIZE = 100;
5555

@@ -65,7 +65,7 @@ function getDefaultRelativeIndexReadCostPerDocument(): number {
6565
// Googlers can see b/299284287 for details.
6666
if (isSafari()) {
6767
return 8;
68-
} else if (SimpleDb.getAndroidVersion(getUA()) > 0) {
68+
} else if (getAndroidVersion(getUA()) > 0) {
6969
return 6;
7070
} else {
7171
return 4;

packages/firestore/src/local/simple_db.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ export class SimpleDb {
201201
const isUnsupportedIOS = 0 < iOSVersion && iOSVersion < 10;
202202

203203
// Android browser: Disable for userse running version < 4.5.
204-
const androidVersion = SimpleDb.getAndroidVersion(ua);
204+
const androidVersion = getAndroidVersion(ua);
205205
const isUnsupportedAndroid = 0 < androidVersion && androidVersion < 4.5;
206206

207207
if (
@@ -246,16 +246,6 @@ export class SimpleDb {
246246
return Number(version);
247247
}
248248

249-
// visible for testing
250-
/** Parse User Agent to determine Android version. Returns -1 if not found. */
251-
static getAndroidVersion(ua: string): number {
252-
const androidVersionRegex = ua.match(/Android ([\d.]+)/i);
253-
const version = androidVersionRegex
254-
? androidVersionRegex[1].split('.').slice(0, 2).join('.')
255-
: '-1';
256-
return Number(version);
257-
}
258-
259249
/*
260250
* Creates a new SimpleDb wrapper for IndexedDb database `name`.
261251
*
@@ -470,6 +460,15 @@ export class SimpleDb {
470460
}
471461
}
472462

463+
/** Parse User Agent to determine Android version. Returns -1 if not found. */
464+
export function getAndroidVersion(ua: string): number {
465+
const androidVersionRegex = ua.match(/Android ([\d.]+)/i);
466+
const version = androidVersionRegex
467+
? androidVersionRegex[1].split('.').slice(0, 2).join('.')
468+
: '-1';
469+
return Number(version);
470+
}
471+
473472
/**
474473
* A controller for iterating over a key range or index. It allows an iterate
475474
* callback to delete the currently-referenced object, or jump to a new key

packages/firestore/test/unit/local/simple_db.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import { Context } from 'mocha';
2222
import { dbKeyComparator } from '../../../src/local/indexeddb_remote_document_cache';
2323
import { PersistencePromise } from '../../../src/local/persistence_promise';
2424
import {
25+
getAndroidVersion,
2526
SimpleDb,
2627
SimpleDbSchemaConverter,
2728
SimpleDbStore,
@@ -137,7 +138,7 @@ describe('SimpleDb', () => {
137138
' AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1';
138139
expect(SimpleDb.getIOSVersion(iPhoneSafariAgent)).to.equal(10.14);
139140
expect(SimpleDb.getIOSVersion(iPadSafariAgent)).to.equal(9.0);
140-
expect(SimpleDb.getAndroidVersion(androidAgent)).to.equal(2.2);
141+
expect(getAndroidVersion(androidAgent)).to.equal(2.2);
141142
});
142143

143144
it('can get', async () => {

0 commit comments

Comments
 (0)