Skip to content

Commit 4625bcf

Browse files
committed
Bug 1875848 - UniFFI generated record constructors now take a POJO. r=lina,bdk,adw
Differential Revision: https://phabricator.services.mozilla.com/D200075
1 parent ce69dff commit 4625bcf

File tree

14 files changed

+231
-160
lines changed

14 files changed

+231
-160
lines changed

browser/components/urlbar/private/SuggestBackendRust.sys.mjs

+6-6
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ export class SuggestBackendRust extends BaseFeature {
118118
}
119119

120120
let suggestions = await this.#store.query(
121-
new lazy.SuggestionQuery(searchString, providers)
121+
new lazy.SuggestionQuery({ keyword: searchString, providers })
122122
);
123123

124124
for (let suggestion of suggestions) {
@@ -170,11 +170,11 @@ export class SuggestBackendRust extends BaseFeature {
170170
this.#store = lazy.SuggestStore.init(
171171
path,
172172
SuggestBackendRust._test_remoteSettingsConfig ??
173-
new lazy.RemoteSettingsConfig(
174-
"quicksuggest",
175-
lazy.Utils.actualBucketName("main"),
176-
lazy.Utils.SERVER_URL
177-
)
173+
new lazy.RemoteSettingsConfig({
174+
collectionName: "quicksuggest",
175+
bucketName: lazy.Utils.actualBucketName("main"),
176+
serverUrl: lazy.Utils.SERVER_URL,
177+
})
178178
);
179179
} catch (error) {
180180
this.logger.error("Error initializing SuggestStore:");

browser/components/urlbar/tests/quicksuggest/QuickSuggestTestUtils.sys.mjs

+5-5
Original file line numberDiff line numberDiff line change
@@ -214,11 +214,11 @@ class _QuickSuggestTestUtils {
214214

215215
// Tell the Rust backend to use the local remote setting server.
216216
lazy.SuggestBackendRust._test_remoteSettingsConfig =
217-
new lazy.RemoteSettingsConfig(
218-
"quicksuggest",
219-
"main",
220-
this.#remoteSettingsServer.url.toString()
221-
);
217+
new lazy.RemoteSettingsConfig({
218+
collectionName: "quicksuggest",
219+
bucketName: "main",
220+
serverUrl: this.#remoteSettingsServer.url.toString(),
221+
});
222222

223223
// Finally, init Suggest and set prefs. Do this after setting up remote
224224
// settings because the current backend will immediately try to sync.

services/sync/modules/engines/tabs.sys.mjs

+4-5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
3030
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.sys.mjs",
3131
ReaderMode: "resource://gre/modules/ReaderMode.sys.mjs",
3232
TabsStore: "resource://gre/modules/RustTabs.sys.mjs",
33+
RemoteTabRecord: "resource://gre/modules/RustTabs.sys.mjs",
3334
});
3435

3536
XPCOMUtils.defineLazyPreferenceGetter(
@@ -75,8 +76,7 @@ TabEngine.prototype = {
7576
tabs.map(tab => {
7677
// rust wants lastUsed in MS but the provider gives it in seconds
7778
tab.lastUsed = tab.lastUsed * 1000;
78-
tab.inactive = false;
79-
return tab;
79+
return new lazy.RemoteTabRecord(tab);
8080
})
8181
);
8282

@@ -411,13 +411,12 @@ export const TabProvider = {
411411
continue;
412412
}
413413

414-
let thisTab = {
414+
let thisTab = new lazy.RemoteTabRecord({
415415
title: tab.linkedBrowser.contentTitle || "",
416416
urlHistory: [url],
417417
icon: "",
418-
inactive: false,
419418
lastUsed: Math.floor((tab.lastAccessed || 0) / 1000),
420-
};
419+
});
421420
tabRecords.push(thisTab);
422421

423422
// we don't want to wait for each favicon to resolve to get the bytes

toolkit/components/uniffi-bindgen-gecko-js/components/generated/RustRemoteSettings.sys.mjs

+39-27
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ export class FfiConverterTypeRemoteSettings extends FfiConverter {
465465
}
466466

467467
export class Attachment {
468-
constructor(filename,mimetype,location,hash,size) {
468+
constructor({ filename, mimetype, location, hash, size } = {}) {
469469
try {
470470
FfiConverterString.checkType(filename)
471471
} catch (e) {
@@ -526,13 +526,13 @@ export class Attachment {
526526
// Export the FFIConverter object to make external types work.
527527
export class FfiConverterTypeAttachment extends FfiConverterArrayBuffer {
528528
static read(dataStream) {
529-
return new Attachment(
530-
FfiConverterString.read(dataStream),
531-
FfiConverterString.read(dataStream),
532-
FfiConverterString.read(dataStream),
533-
FfiConverterString.read(dataStream),
534-
FfiConverterU64.read(dataStream)
535-
);
529+
return new Attachment({
530+
filename: FfiConverterString.read(dataStream),
531+
mimetype: FfiConverterString.read(dataStream),
532+
location: FfiConverterString.read(dataStream),
533+
hash: FfiConverterString.read(dataStream),
534+
size: FfiConverterU64.read(dataStream),
535+
});
536536
}
537537
static write(dataStream, value) {
538538
FfiConverterString.write(dataStream, value.filename);
@@ -554,6 +554,9 @@ export class FfiConverterTypeAttachment extends FfiConverterArrayBuffer {
554554

555555
static checkType(value) {
556556
super.checkType(value);
557+
if (!(value instanceof Attachment)) {
558+
throw new TypeError(`Expected 'Attachment', found '${typeof value}'`);
559+
}
557560
try {
558561
FfiConverterString.checkType(value.filename);
559562
} catch (e) {
@@ -598,7 +601,7 @@ export class FfiConverterTypeAttachment extends FfiConverterArrayBuffer {
598601
}
599602

600603
export class RemoteSettingsConfig {
601-
constructor(collectionName,bucketName = null,serverUrl = null) {
604+
constructor({ collectionName, bucketName = null, serverUrl = null } = {}) {
602605
try {
603606
FfiConverterString.checkType(collectionName)
604607
} catch (e) {
@@ -639,11 +642,11 @@ export class RemoteSettingsConfig {
639642
// Export the FFIConverter object to make external types work.
640643
export class FfiConverterTypeRemoteSettingsConfig extends FfiConverterArrayBuffer {
641644
static read(dataStream) {
642-
return new RemoteSettingsConfig(
643-
FfiConverterString.read(dataStream),
644-
FfiConverterOptionalstring.read(dataStream),
645-
FfiConverterOptionalstring.read(dataStream)
646-
);
645+
return new RemoteSettingsConfig({
646+
collectionName: FfiConverterString.read(dataStream),
647+
bucketName: FfiConverterOptionalstring.read(dataStream),
648+
serverUrl: FfiConverterOptionalstring.read(dataStream),
649+
});
647650
}
648651
static write(dataStream, value) {
649652
FfiConverterString.write(dataStream, value.collectionName);
@@ -661,6 +664,9 @@ export class FfiConverterTypeRemoteSettingsConfig extends FfiConverterArrayBuffe
661664

662665
static checkType(value) {
663666
super.checkType(value);
667+
if (!(value instanceof RemoteSettingsConfig)) {
668+
throw new TypeError(`Expected 'RemoteSettingsConfig', found '${typeof value}'`);
669+
}
664670
try {
665671
FfiConverterString.checkType(value.collectionName);
666672
} catch (e) {
@@ -689,7 +695,7 @@ export class FfiConverterTypeRemoteSettingsConfig extends FfiConverterArrayBuffe
689695
}
690696

691697
export class RemoteSettingsRecord {
692-
constructor(id,lastModified,deleted,attachment,fields) {
698+
constructor({ id, lastModified, deleted, attachment, fields } = {}) {
693699
try {
694700
FfiConverterString.checkType(id)
695701
} catch (e) {
@@ -750,13 +756,13 @@ export class RemoteSettingsRecord {
750756
// Export the FFIConverter object to make external types work.
751757
export class FfiConverterTypeRemoteSettingsRecord extends FfiConverterArrayBuffer {
752758
static read(dataStream) {
753-
return new RemoteSettingsRecord(
754-
FfiConverterString.read(dataStream),
755-
FfiConverterU64.read(dataStream),
756-
FfiConverterBool.read(dataStream),
757-
FfiConverterOptionalTypeAttachment.read(dataStream),
758-
FfiConverterTypeRsJsonObject.read(dataStream)
759-
);
759+
return new RemoteSettingsRecord({
760+
id: FfiConverterString.read(dataStream),
761+
lastModified: FfiConverterU64.read(dataStream),
762+
deleted: FfiConverterBool.read(dataStream),
763+
attachment: FfiConverterOptionalTypeAttachment.read(dataStream),
764+
fields: FfiConverterTypeRsJsonObject.read(dataStream),
765+
});
760766
}
761767
static write(dataStream, value) {
762768
FfiConverterString.write(dataStream, value.id);
@@ -778,6 +784,9 @@ export class FfiConverterTypeRemoteSettingsRecord extends FfiConverterArrayBuffe
778784

779785
static checkType(value) {
780786
super.checkType(value);
787+
if (!(value instanceof RemoteSettingsRecord)) {
788+
throw new TypeError(`Expected 'RemoteSettingsRecord', found '${typeof value}'`);
789+
}
781790
try {
782791
FfiConverterString.checkType(value.id);
783792
} catch (e) {
@@ -822,7 +831,7 @@ export class FfiConverterTypeRemoteSettingsRecord extends FfiConverterArrayBuffe
822831
}
823832

824833
export class RemoteSettingsResponse {
825-
constructor(records,lastModified) {
834+
constructor({ records, lastModified } = {}) {
826835
try {
827836
FfiConverterSequenceTypeRemoteSettingsRecord.checkType(records)
828837
} catch (e) {
@@ -853,10 +862,10 @@ export class RemoteSettingsResponse {
853862
// Export the FFIConverter object to make external types work.
854863
export class FfiConverterTypeRemoteSettingsResponse extends FfiConverterArrayBuffer {
855864
static read(dataStream) {
856-
return new RemoteSettingsResponse(
857-
FfiConverterSequenceTypeRemoteSettingsRecord.read(dataStream),
858-
FfiConverterU64.read(dataStream)
859-
);
865+
return new RemoteSettingsResponse({
866+
records: FfiConverterSequenceTypeRemoteSettingsRecord.read(dataStream),
867+
lastModified: FfiConverterU64.read(dataStream),
868+
});
860869
}
861870
static write(dataStream, value) {
862871
FfiConverterSequenceTypeRemoteSettingsRecord.write(dataStream, value.records);
@@ -872,6 +881,9 @@ export class FfiConverterTypeRemoteSettingsResponse extends FfiConverterArrayBuf
872881

873882
static checkType(value) {
874883
super.checkType(value);
884+
if (!(value instanceof RemoteSettingsResponse)) {
885+
throw new TypeError(`Expected 'RemoteSettingsResponse', found '${typeof value}'`);
886+
}
875887
try {
876888
FfiConverterSequenceTypeRemoteSettingsRecord.checkType(value.records);
877889
} catch (e) {

toolkit/components/uniffi-bindgen-gecko-js/components/generated/RustSuggest.sys.mjs

+23-14
Original file line numberDiff line numberDiff line change
@@ -789,7 +789,7 @@ export class FfiConverterTypeSuggestStoreBuilder extends FfiConverter {
789789
}
790790

791791
export class SuggestGlobalConfig {
792-
constructor(showLessFrequentlyCap) {
792+
constructor({ showLessFrequentlyCap } = {}) {
793793
try {
794794
FfiConverterI32.checkType(showLessFrequentlyCap)
795795
} catch (e) {
@@ -810,9 +810,9 @@ export class SuggestGlobalConfig {
810810
// Export the FFIConverter object to make external types work.
811811
export class FfiConverterTypeSuggestGlobalConfig extends FfiConverterArrayBuffer {
812812
static read(dataStream) {
813-
return new SuggestGlobalConfig(
814-
FfiConverterI32.read(dataStream)
815-
);
813+
return new SuggestGlobalConfig({
814+
showLessFrequentlyCap: FfiConverterI32.read(dataStream),
815+
});
816816
}
817817
static write(dataStream, value) {
818818
FfiConverterI32.write(dataStream, value.showLessFrequentlyCap);
@@ -826,6 +826,9 @@ export class FfiConverterTypeSuggestGlobalConfig extends FfiConverterArrayBuffer
826826

827827
static checkType(value) {
828828
super.checkType(value);
829+
if (!(value instanceof SuggestGlobalConfig)) {
830+
throw new TypeError(`Expected 'SuggestGlobalConfig', found '${typeof value}'`);
831+
}
829832
try {
830833
FfiConverterI32.checkType(value.showLessFrequentlyCap);
831834
} catch (e) {
@@ -838,7 +841,7 @@ export class FfiConverterTypeSuggestGlobalConfig extends FfiConverterArrayBuffer
838841
}
839842

840843
export class SuggestIngestionConstraints {
841-
constructor(maxSuggestions = null) {
844+
constructor({ maxSuggestions = null } = {}) {
842845
try {
843846
FfiConverterOptionalu64.checkType(maxSuggestions)
844847
} catch (e) {
@@ -859,9 +862,9 @@ export class SuggestIngestionConstraints {
859862
// Export the FFIConverter object to make external types work.
860863
export class FfiConverterTypeSuggestIngestionConstraints extends FfiConverterArrayBuffer {
861864
static read(dataStream) {
862-
return new SuggestIngestionConstraints(
863-
FfiConverterOptionalu64.read(dataStream)
864-
);
865+
return new SuggestIngestionConstraints({
866+
maxSuggestions: FfiConverterOptionalu64.read(dataStream),
867+
});
865868
}
866869
static write(dataStream, value) {
867870
FfiConverterOptionalu64.write(dataStream, value.maxSuggestions);
@@ -875,6 +878,9 @@ export class FfiConverterTypeSuggestIngestionConstraints extends FfiConverterArr
875878

876879
static checkType(value) {
877880
super.checkType(value);
881+
if (!(value instanceof SuggestIngestionConstraints)) {
882+
throw new TypeError(`Expected 'SuggestIngestionConstraints', found '${typeof value}'`);
883+
}
878884
try {
879885
FfiConverterOptionalu64.checkType(value.maxSuggestions);
880886
} catch (e) {
@@ -887,7 +893,7 @@ export class FfiConverterTypeSuggestIngestionConstraints extends FfiConverterArr
887893
}
888894

889895
export class SuggestionQuery {
890-
constructor(keyword,providers,limit = null) {
896+
constructor({ keyword, providers, limit = null } = {}) {
891897
try {
892898
FfiConverterString.checkType(keyword)
893899
} catch (e) {
@@ -928,11 +934,11 @@ export class SuggestionQuery {
928934
// Export the FFIConverter object to make external types work.
929935
export class FfiConverterTypeSuggestionQuery extends FfiConverterArrayBuffer {
930936
static read(dataStream) {
931-
return new SuggestionQuery(
932-
FfiConverterString.read(dataStream),
933-
FfiConverterSequenceTypeSuggestionProvider.read(dataStream),
934-
FfiConverterOptionali32.read(dataStream)
935-
);
937+
return new SuggestionQuery({
938+
keyword: FfiConverterString.read(dataStream),
939+
providers: FfiConverterSequenceTypeSuggestionProvider.read(dataStream),
940+
limit: FfiConverterOptionali32.read(dataStream),
941+
});
936942
}
937943
static write(dataStream, value) {
938944
FfiConverterString.write(dataStream, value.keyword);
@@ -950,6 +956,9 @@ export class FfiConverterTypeSuggestionQuery extends FfiConverterArrayBuffer {
950956

951957
static checkType(value) {
952958
super.checkType(value);
959+
if (!(value instanceof SuggestionQuery)) {
960+
throw new TypeError(`Expected 'SuggestionQuery', found '${typeof value}'`);
961+
}
953962
try {
954963
FfiConverterString.checkType(value.keyword);
955964
} catch (e) {

0 commit comments

Comments
 (0)