@@ -14,16 +14,25 @@ enum Browser {
1414 (StorageMode .opfs, AccessMode .throughSharedWorker)
1515 },
1616 missingFeatures: {MissingBrowserFeature .dedicatedWorkersInSharedWorkers},
17+ defaultImplementation: (
18+ StorageMode .opfs,
19+ AccessMode .throughDedicatedWorker
20+ ),
1721 ),
18- firefox (driverUriString: 'http://localhost:4444/' );
22+ firefox (
23+ driverUriString: 'http://localhost:4444/' ,
24+ defaultImplementation: (StorageMode .opfs, AccessMode .throughSharedWorker),
25+ );
1926
2027 final bool isChromium;
2128 final String driverUriString;
2229 final Set <(StorageMode , AccessMode )> unsupportedImplementations;
2330 final Set <MissingBrowserFeature > missingFeatures;
31+ final (StorageMode , AccessMode ) defaultImplementation;
2432
2533 const Browser ({
2634 required this .driverUriString,
35+ required this .defaultImplementation,
2736 this .isChromium = false ,
2837 this .unsupportedImplementations = const {},
2938 this .missingFeatures = const {},
@@ -81,6 +90,17 @@ void main() {
8190 final rawDriver = await createDriver (
8291 spec: browser.isChromium ? WebDriverSpec .JsonWire : WebDriverSpec .W3c ,
8392 uri: browser.driverUri,
93+ desired: {
94+ 'goog:chromeOptions' : {
95+ 'args' : [
96+ '--headless=new' ,
97+ '--disable-search-engine-choice-screen' ,
98+ ],
99+ },
100+ 'moz:firefoxOptions' : {
101+ 'args' : ['-headless' ]
102+ },
103+ },
84104 );
85105
86106 driver = TestWebDriver (server, rawDriver);
@@ -107,6 +127,11 @@ void main() {
107127 expect (result.impls, browser.availableImplementations);
108128 });
109129
130+ test ('picks recommended option' , () async {
131+ final (storage, access) = await driver.openDatabase ();
132+ expect ((storage, access), browser.defaultImplementation);
133+ });
134+
110135 for (final (storage, access) in browser.availableImplementations) {
111136 test ('$storage through $access ' , () async {
112137 await driver.openDatabase ((storage, access));
0 commit comments