Skip to content

Commit fc7e906

Browse files
committed
Merge branch 'master' into yifany-log-verbosity
Mocha version in master branch is updated to 5.2.0.
2 parents 63f8809 + 97cc3f8 commit fc7e906

File tree

25 files changed

+226
-75
lines changed

25 files changed

+226
-75
lines changed

.github/CODEOWNERS

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ packages/storage @schmidt-sebastian
1919
packages/storage-types @schmidt-sebastian
2020

2121
# Messaging Code
22-
packages/messaging @gauntface @pinarx @mmermerkaya @dwoffinden
23-
packages/messaging-types @gauntface @pinarx @mmermerkaya @dwoffinden
24-
integration/messaging @gauntface @pinarx @mmermerkaya @dwoffinden
22+
packages/messaging @pinarx @mmermerkaya @dwoffinden
23+
packages/messaging-types @pinarx @mmermerkaya @dwoffinden
24+
integration/messaging @pinarx @mmermerkaya @dwoffinden
2525

2626
# Auth Code
2727
packages/auth @bojeil-google @wti806

integration/browserify/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"test": "karma start --single-run"
88
},
99
"dependencies": {
10-
"firebase": "5.5.8"
10+
"firebase": "5.5.9"
1111
},
1212
"devDependencies": {
1313
"@babel/core": "7.0.0-beta.47",
@@ -22,6 +22,6 @@
2222
"karma-sauce-launcher": "1.2.0",
2323
"karma-spec-reporter": "0.0.32",
2424
"mkdirp": "0.5.1",
25-
"mocha": "5.0.5"
25+
"mocha": "5.2.0"
2626
}
2727
}

integration/firebase-typings/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"test": "tsc index.ts --outDir dist"
77
},
88
"dependencies": {
9-
"firebase": "5.5.8"
9+
"firebase": "5.5.9"
1010
},
1111
"devDependencies": {
1212
"typescript": "2.8.1"

integration/firestore/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"karma-firefox-launcher": "1.1.0",
2222
"karma-mocha": "1.3.0",
2323
"karma-spec-reporter": "0.0.32",
24-
"mocha": "5.0.5",
24+
"mocha": "5.2.0",
2525
"ts-loader": "3.5.0",
2626
"typescript": "2.8.1",
2727
"webpack": "3.11.0",

integration/messaging/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88
"test:manual": "mocha --exit"
99
},
1010
"dependencies": {
11-
"firebase": "5.5.8"
11+
"firebase": "5.5.9"
1212
},
1313
"devDependencies": {
1414
"chai": "4.1.2",
1515
"chromedriver": "2.37.0",
1616
"express": "4.16.3",
1717
"geckodriver": "1.11.0",
18-
"mocha": "5.0.5",
18+
"mocha": "5.2.0",
1919
"node-fetch": "2.1.2",
2020
"selenium-assistant": "5.3.0",
2121
"sinon": "4.5.0"

integration/typescript/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"test": "karma start --single-run"
77
},
88
"dependencies": {
9-
"firebase": "5.5.8"
9+
"firebase": "5.5.9"
1010
},
1111
"devDependencies": {
1212
"@babel/core": "7.0.0-beta.47",
@@ -23,7 +23,7 @@
2323
"karma-sauce-launcher": "1.2.0",
2424
"karma-spec-reporter": "0.0.32",
2525
"karma-typescript": "3.0.12",
26-
"mocha": "5.0.5",
26+
"mocha": "5.2.0",
2727
"npm-run-all": "4.1.2",
2828
"typescript": "2.8.1"
2929
}

integration/webpack/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"test": "karma start --single-run"
88
},
99
"dependencies": {
10-
"firebase": "5.5.8"
10+
"firebase": "5.5.9"
1111
},
1212
"devDependencies": {
1313
"@babel/core": "7.0.0-beta.47",
@@ -20,7 +20,7 @@
2020
"karma-mocha": "1.3.0",
2121
"karma-sauce-launcher": "1.2.0",
2222
"karma-spec-reporter": "0.0.32",
23-
"mocha": "5.0.5",
23+
"mocha": "5.2.0",
2424
"webpack": "3.11.0"
2525
}
2626
}

packages/app/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@firebase/app",
3-
"version": "0.3.4",
3+
"version": "0.3.5",
44
"description": "The primary entrypoint to the Firebase JS SDK",
55
"author": "Firebase <[email protected]> (https://firebase.google.com/)",
66
"main": "dist/index.node.cjs.js",
@@ -22,7 +22,7 @@
2222
"license": "Apache-2.0",
2323
"dependencies": {
2424
"@firebase/app-types": "0.3.2",
25-
"@firebase/util": "0.2.2",
25+
"@firebase/util": "0.2.3",
2626
"tslib": "1.9.0",
2727
"dom-storage": "2.1.0",
2828
"xmlhttprequest": "1.8.0"
@@ -42,7 +42,7 @@
4242
"karma-sourcemap-loader": "0.3.7",
4343
"karma-spec-reporter": "0.0.32",
4444
"karma-webpack": "2.0.9",
45-
"mocha": "5.0.5",
45+
"mocha": "5.2.0",
4646
"npm-run-all": "4.1.2",
4747
"nyc": "11.6.0",
4848
"rollup": "0.57.1",

packages/database/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@firebase/database",
3-
"version": "0.3.6",
3+
"version": "0.3.7",
44
"description": "",
55
"author": "Firebase <[email protected]> (https://firebase.google.com/)",
66
"main": "dist/index.node.cjs.js",
@@ -24,8 +24,8 @@
2424
},
2525
"dependencies": {
2626
"@firebase/database-types": "0.3.2",
27-
"@firebase/logger": "0.1.1",
28-
"@firebase/util": "0.2.2",
27+
"@firebase/logger": "0.1.2",
28+
"@firebase/util": "0.2.3",
2929
"faye-websocket": "0.11.1",
3030
"tslib": "1.9.0"
3131
},
@@ -44,7 +44,7 @@
4444
"karma-sourcemap-loader": "0.3.7",
4545
"karma-spec-reporter": "0.0.32",
4646
"karma-webpack": "2.0.9",
47-
"mocha": "5.0.5",
47+
"mocha": "5.2.0",
4848
"npm-run-all": "4.1.2",
4949
"nyc": "11.6.0",
5050
"rollup": "0.57.1",

packages/database/test/helpers/EventAccumulator.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
export const EventAccumulatorFactory = {
1818
waitsForCount: maxCount => {
1919
let count = 0;
20-
const condition = () => ea.eventData.length >= count;
20+
const condition = () => count >= maxCount;
2121
const ea = new EventAccumulator(condition);
2222
ea.onReset(() => {
2323
count = 0;

packages/firebase/package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "firebase",
3-
"version": "5.5.8",
3+
"version": "5.5.9",
44
"description": "Firebase JavaScript library for web and Node.js",
55
"author": "Firebase <[email protected]> (https://firebase.google.com/)",
66
"license": "Apache-2.0",
@@ -35,12 +35,12 @@
3535
"module": "dist/index.esm.js",
3636
"react-native": "dist/index.rn.cjs.js",
3737
"dependencies": {
38-
"@firebase/app": "0.3.4",
38+
"@firebase/app": "0.3.5",
3939
"@firebase/auth": "0.7.9",
40-
"@firebase/database": "0.3.6",
41-
"@firebase/firestore": "0.8.7",
42-
"@firebase/functions": "0.3.2",
43-
"@firebase/messaging": "0.3.6",
40+
"@firebase/database": "0.3.7",
41+
"@firebase/firestore": "0.8.8",
42+
"@firebase/functions": "0.3.3",
43+
"@firebase/messaging": "0.3.7",
4444
"@firebase/polyfill": "0.3.3",
4545
"@firebase/storage": "0.2.4"
4646
},

packages/firestore/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@firebase/firestore",
3-
"version": "0.8.7",
3+
"version": "0.8.8",
44
"description": "",
55
"author": "Firebase <[email protected]> (https://firebase.google.com/)",
66
"scripts": {
@@ -26,7 +26,7 @@
2626
],
2727
"dependencies": {
2828
"@firebase/firestore-types": "0.7.0",
29-
"@firebase/logger": "0.1.1",
29+
"@firebase/logger": "0.1.2",
3030
"@firebase/webchannel-wrapper": "0.2.11",
3131
"grpc": "1.16.0",
3232
"tslib": "1.9.0"
@@ -55,7 +55,7 @@
5555
"karma-webpack": "2.0.9",
5656
"long": "3.2.0",
5757
"mkdirp": "0.5.1",
58-
"mocha": "5.0.5",
58+
"mocha": "5.2.0",
5959
"npm-run-all": "4.1.2",
6060
"nyc": "11.6.0",
6161
"prettier": "1.12.0",

packages/firestore/src/local/indexeddb_schema.ts

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import { SnapshotVersion } from '../core/snapshot_version';
2323
import { BATCHID_UNKNOWN } from '../model/mutation_batch';
2424
import { encode, EncodedResourcePath } from './encoded_resource_path';
2525
import { removeMutationBatch } from './indexeddb_mutation_queue';
26+
import { getHighestListenSequenceNumber } from './indexeddb_query_cache';
2627
import { dbDocumentSize } from './indexeddb_remote_document_cache';
2728
import { LocalSerializer } from './local_serializer';
2829
import { PersistencePromise } from './persistence_promise';
@@ -39,8 +40,10 @@ import { SimpleDbSchemaConverter, SimpleDbTransaction } from './simple_db';
3940
* https://github.com/firebase/firebase-ios-sdk/issues/1548
4041
* 4. Multi-Tab Support.
4142
* 5. Removal of held write acks.
43+
* 6. Create document global for tracking document cache size.
44+
* 7. Ensure every cached document has a sentinel row with a sequence number.
4245
*/
43-
export const SCHEMA_VERSION = 6;
46+
export const SCHEMA_VERSION = 7;
4447

4548
/** Performs database creation and schema upgrades. */
4649
export class SchemaConverter implements SimpleDbSchemaConverter {
@@ -115,6 +118,10 @@ export class SchemaConverter implements SimpleDbSchemaConverter {
115118
});
116119
}
117120

121+
if (fromVersion < 7 && toVersion >= 7) {
122+
p = p.next(() => this.ensureSequenceNumbers(txn));
123+
}
124+
118125
return p;
119126
}
120127

@@ -172,6 +179,53 @@ export class SchemaConverter implements SimpleDbSchemaConverter {
172179
});
173180
});
174181
}
182+
183+
/**
184+
* Ensures that every document in the remote document cache has a corresponding sentinel row
185+
* with a sequence number. Missing rows are given the most recently used sequence number.
186+
*/
187+
private ensureSequenceNumbers(
188+
txn: SimpleDbTransaction
189+
): PersistencePromise<void> {
190+
const documentTargetStore = txn.store<
191+
DbTargetDocumentKey,
192+
DbTargetDocument
193+
>(DbTargetDocument.store);
194+
const documentsStore = txn.store<DbRemoteDocumentKey, DbRemoteDocument>(
195+
DbRemoteDocument.store
196+
);
197+
198+
return getHighestListenSequenceNumber(txn).next(currentSequenceNumber => {
199+
const writeSentinelKey = (
200+
path: ResourcePath
201+
): PersistencePromise<void> => {
202+
return documentTargetStore.put(
203+
new DbTargetDocument(0, encode(path), currentSequenceNumber)
204+
);
205+
};
206+
207+
const promises: Array<PersistencePromise<void>> = [];
208+
return documentsStore
209+
.iterate((key, doc) => {
210+
const path = new ResourcePath(key);
211+
const docSentinelKey = sentinelKey(path);
212+
promises.push(
213+
documentTargetStore.get(docSentinelKey).next(maybeSentinel => {
214+
if (!maybeSentinel) {
215+
return writeSentinelKey(path);
216+
} else {
217+
return PersistencePromise.resolve();
218+
}
219+
})
220+
);
221+
})
222+
.next(() => PersistencePromise.waitFor(promises));
223+
});
224+
}
225+
}
226+
227+
function sentinelKey(path: ResourcePath): DbTargetDocumentKey {
228+
return [0, encode(path)];
175229
}
176230

177231
// TODO(mikelehen): Get rid of "as any" if/when TypeScript fixes their types.

packages/firestore/src/platform_node/grpc_connection.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,17 @@ export class GrpcConnection implements Connection {
113113
? grpc.credentials.createSsl()
114114
: grpc.credentials.createInsecure();
115115
this.cachedStub = {
116-
stub: new this.firestore.Firestore(this.databaseInfo.host, credentials),
116+
stub: new this.firestore.Firestore(
117+
this.databaseInfo.host,
118+
credentials,
119+
{
120+
// We do our own connection backoff (that for example is aware of whether or
121+
// not a write stream error is permanent or not) so we don't want gRPC to do
122+
// backoff on top of that. 100ms is the minimum value that gRPC allows.
123+
'grpc.initial_reconnect_backoff_ms': 100,
124+
'grpc.max_reconnect_backoff_ms': 100
125+
}
126+
),
117127
token
118128
};
119129
}

0 commit comments

Comments
 (0)