@@ -19,7 +19,6 @@ import '../constants.dart';
1919import '../diagnostics/inspector_service.dart' ;
2020import '../feature_flags.dart' ;
2121import '../globals.dart' ;
22- import '../managers/banner_messages.dart' ;
2322import '../primitives/query_parameters.dart' ;
2423import '../server/server.dart' ;
2524import '../utils/utils.dart' ;
@@ -38,7 +37,11 @@ const _thirdPartyPathSegment = 'third_party';
3837
3938/// DevTools preferences for experimental features.
4039enum _ExperimentPreferences {
41- wasm;
40+ /// Deprecated, we ignore this key in favor of [wasmOptOut] .
41+ wasm,
42+
43+ /// Whether a user has opted out of the dart2wasm experiment.
44+ wasmOptOut;
4245
4346 String get storageKey => '$storagePrefix .$name ' ;
4447
@@ -66,8 +69,6 @@ enum _GeneralPreferences { verboseLogging }
6669/// A controller for global application preferences.
6770class PreferencesController extends DisposableController
6871 with AutoDisposeControllerMixin {
69- static const _welcomeShownStorageId = 'wasmWelcomeShown' ;
70-
7172 /// Whether the user preference for DevTools theme is set to dark mode.
7273 ///
7374 /// To check whether DevTools is using a light or dark theme, other parts of
@@ -191,25 +192,13 @@ class PreferencesController extends DisposableController
191192 );
192193 }
193194
194- // Maybe show the WASM welcome message on app connection if this is the
195- // first time the user is loading DevTools after the WASM experiment was
196- // enabled.
197- addAutoDisposeListener (
198- serviceConnection.serviceManager.connectedState,
199- () async {
200- if (serviceConnection.serviceManager.connectedState.value.connected) {
201- await _maybeShowWasmWelcomeMessage ();
202- }
203- },
204- );
205-
206195 addAutoDisposeListener (wasmEnabled, () async {
207196 final enabled = wasmEnabled.value;
208197 _log.fine ('preference update (wasmEnabled = $enabled )' );
209198
210199 await storage.setValue (
211- _ExperimentPreferences .wasm .storageKey,
212- '$enabled ' ,
200+ _ExperimentPreferences .wasmOptOut .storageKey,
201+ '${! enabled } ' ,
213202 );
214203
215204 // Update the wasm mode query parameter if it does not match the value of
@@ -227,10 +216,12 @@ class PreferencesController extends DisposableController
227216 }
228217 });
229218
230- final enabledFromStorage = await boolValueFromStorage (
231- _ExperimentPreferences .wasm .storageKey,
219+ final optOutFromStorage = await boolValueFromStorage (
220+ _ExperimentPreferences .wasmOptOut .storageKey,
232221 defaultsTo: false ,
233222 );
223+ final enabledFromStorage = ! optOutFromStorage;
224+
234225 final queryParams = DevToolsQueryParams .load ();
235226 final enabledFromQueryParams = queryParams.useWasm;
236227
@@ -269,23 +260,6 @@ class PreferencesController extends DisposableController
269260 toggleWasmEnabled (shouldEnableWasm);
270261 }
271262
272- Future <void > _maybeShowWasmWelcomeMessage () async {
273- // If we have already shown the welcome message, don't show it again.
274- final welcomeAlreadyShown = await storage.getValue (_welcomeShownStorageId);
275- if (welcomeAlreadyShown == 'true' ) return ;
276-
277- // Show the welcome message if the WASM experiment is enabled but the user
278- // is not using the WASM build.
279- final connectedApp = serviceConnection.serviceManager.connectedApp;
280- if (connectedApp != null &&
281- FeatureFlags .wasmByDefault.isEnabled (connectedApp) &&
282- ! kIsWasm) {
283- // Mark the welcome message as shown.
284- await storage.setValue (_welcomeShownStorageId, 'true' );
285- pushWasmWelcomeMessage ();
286- }
287- }
288-
289263 Future <void > _initVerboseLogging () async {
290264 final verboseLoggingEnabledValue = await boolValueFromStorage (
291265 _GeneralPreferences .verboseLogging.name,
0 commit comments