Skip to content

Commit 81e9060

Browse files
authored
Suppress analytics flag pass through to analysis server (#123235)
Suppress analytics flag pass through to analysis server
1 parent 726b720 commit 81e9060

File tree

10 files changed

+71
-1
lines changed

10 files changed

+71
-1
lines changed

packages/flutter_tools/lib/executable.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ List<FlutterCommand> generateCommands({
152152
platform: globals.platform,
153153
),
154154
],
155+
suppressAnalytics: globals.flutterUsage.suppressAnalytics,
155156
),
156157
AssembleCommand(verboseHelp: verboseHelp, buildSystem: globals.buildSystem),
157158
AttachCommand(

packages/flutter_tools/lib/src/commands/analyze.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,15 @@ class AnalyzeCommand extends FlutterCommand {
2929
required ProcessManager processManager,
3030
required Artifacts artifacts,
3131
required List<ProjectValidator> allProjectValidators,
32+
required bool suppressAnalytics,
3233
}) : _artifacts = artifacts,
3334
_fileSystem = fileSystem,
3435
_processManager = processManager,
3536
_logger = logger,
3637
_terminal = terminal,
3738
_allProjectValidators = allProjectValidators,
38-
_platform = platform {
39+
_platform = platform,
40+
_suppressAnalytics = suppressAnalytics {
3941
argParser.addFlag('flutter-repo',
4042
negatable: false,
4143
help: 'Include all the examples and tests from the Flutter repository.',
@@ -109,6 +111,7 @@ class AnalyzeCommand extends FlutterCommand {
109111
final ProcessManager _processManager;
110112
final Platform _platform;
111113
final List<ProjectValidator> _allProjectValidators;
114+
final bool _suppressAnalytics;
112115

113116
@override
114117
String get name => 'analyze';
@@ -181,6 +184,7 @@ class AnalyzeCommand extends FlutterCommand {
181184
processManager: _processManager,
182185
terminal: _terminal,
183186
artifacts: _artifacts,
187+
suppressAnalytics: _suppressAnalytics,
184188
).analyze();
185189
} else {
186190
await AnalyzeOnce(
@@ -194,6 +198,7 @@ class AnalyzeCommand extends FlutterCommand {
194198
processManager: _processManager,
195199
terminal: _terminal,
196200
artifacts: _artifacts,
201+
suppressAnalytics: _suppressAnalytics,
197202
).analyze();
198203
}
199204
return FlutterCommandResult.success();

packages/flutter_tools/lib/src/commands/analyze_base.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ abstract class AnalyzeBase {
2828
required this.processManager,
2929
required this.terminal,
3030
required this.artifacts,
31+
required this.suppressAnalytics,
3132
});
3233

3334
/// The parsed argument results for execution.
@@ -48,6 +49,8 @@ abstract class AnalyzeBase {
4849
final Terminal terminal;
4950
@protected
5051
final Artifacts artifacts;
52+
@protected
53+
final bool suppressAnalytics;
5154

5255
/// Called by [AnalyzeCommand] to start the analysis process.
5356
Future<void> analyze();

packages/flutter_tools/lib/src/commands/analyze_continuously.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class AnalyzeContinuously extends AnalyzeBase {
2121
required super.platform,
2222
required super.processManager,
2323
required super.artifacts,
24+
required super.suppressAnalytics,
2425
}) : super(
2526
repoPackages: repoPackages,
2627
repoRoots: repoRoots,
@@ -63,6 +64,7 @@ class AnalyzeContinuously extends AnalyzeBase {
6364
processManager: processManager,
6465
terminal: terminal,
6566
protocolTrafficLog: protocolTrafficLog,
67+
suppressAnalytics: suppressAnalytics,
6668
);
6769
server.onAnalyzing.listen((bool isAnalyzing) => _handleAnalysisStatus(server, isAnalyzing));
6870
server.onErrors.listen(_handleAnalysisErrors);

packages/flutter_tools/lib/src/commands/analyze_once.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class AnalyzeOnce extends AnalyzeBase {
2222
required super.processManager,
2323
required super.terminal,
2424
required super.artifacts,
25+
required super.suppressAnalytics,
2526
this.workingDirectory,
2627
}) : super(
2728
repoRoots: repoRoots,
@@ -67,6 +68,7 @@ class AnalyzeOnce extends AnalyzeBase {
6768
processManager: processManager,
6869
terminal: terminal,
6970
protocolTrafficLog: protocolTrafficLog,
71+
suppressAnalytics: suppressAnalytics,
7072
);
7173

7274
Stopwatch? timer;

packages/flutter_tools/lib/src/dart/analysis.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class AnalysisServer {
2525
required Logger logger,
2626
required Platform platform,
2727
required Terminal terminal,
28+
required this.suppressAnalytics,
2829
String? protocolTrafficLog,
2930
}) : _fileSystem = fileSystem,
3031
_processManager = processManager,
@@ -41,6 +42,7 @@ class AnalysisServer {
4142
final Platform _platform;
4243
final Terminal _terminal;
4344
final String? _protocolTrafficLog;
45+
final bool suppressAnalytics;
4446

4547
Process? _process;
4648
final StreamController<bool> _analyzingController =
@@ -66,6 +68,7 @@ class AnalysisServer {
6668
'--disable-server-feature-search',
6769
'--sdk',
6870
sdkPath,
71+
if (suppressAnalytics) '--suppress-analytics',
6972
if (_protocolTrafficLog != null)
7073
'--protocol-traffic-log=$_protocolTrafficLog',
7174
];

packages/flutter_tools/test/commands.shard/hermetic/analyze_continuously_test.dart

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ void main() {
9999
processManager: processManager,
100100
logger: logger,
101101
terminal: terminal,
102+
suppressAnalytics: true,
102103
);
103104

104105
int errorCount = 0;
@@ -139,6 +140,7 @@ void main() {
139140
processManager: processManager,
140141
logger: logger,
141142
terminal: terminal,
143+
suppressAnalytics: true,
142144
);
143145

144146
int errorCount = 0;
@@ -166,6 +168,7 @@ void main() {
166168
processManager: processManager,
167169
logger: logger,
168170
terminal: terminal,
171+
suppressAnalytics: true,
169172
);
170173

171174
int errorCount = 0;
@@ -179,6 +182,44 @@ void main() {
179182
await server.dispose();
180183
});
181184

185+
testUsingContext('Can run AnalysisService without suppressing analytics', () async {
186+
final StreamController<List<int>> stdin = StreamController<List<int>>();
187+
final FakeProcessManager processManager = FakeProcessManager.list(
188+
<FakeCommand>[
189+
FakeCommand(
190+
command: const <String>[
191+
'Artifact.engineDartSdkPath/bin/dart',
192+
'--disable-dart-dev',
193+
'Artifact.engineDartSdkPath/bin/snapshots/analysis_server.dart.snapshot',
194+
'--disable-server-feature-completion',
195+
'--disable-server-feature-search',
196+
'--sdk',
197+
'Artifact.engineDartSdkPath',
198+
],
199+
stdin: IOSink(stdin.sink),
200+
),
201+
]);
202+
203+
final Artifacts artifacts = Artifacts.test();
204+
final AnalyzeCommand command = AnalyzeCommand(
205+
terminal: Terminal.test(),
206+
artifacts: artifacts,
207+
logger: BufferLogger.test(),
208+
platform: FakePlatform(),
209+
fileSystem: MemoryFileSystem.test(),
210+
processManager: processManager,
211+
allProjectValidators: <ProjectValidator>[],
212+
suppressAnalytics: false,
213+
);
214+
215+
final TestFlutterCommandRunner commandRunner = TestFlutterCommandRunner();
216+
commandRunner.addCommand(command);
217+
unawaited(commandRunner.run(<String>['analyze', '--watch']));
218+
await stdin.stream.first;
219+
220+
expect(processManager, hasNoRemainingExpectations);
221+
});
222+
182223
testUsingContext('Can run AnalysisService with customized cache location', () async {
183224
final StreamController<List<int>> stdin = StreamController<List<int>>();
184225
final FakeProcessManager processManager = FakeProcessManager.list(
@@ -192,6 +233,7 @@ void main() {
192233
'--disable-server-feature-search',
193234
'--sdk',
194235
'Artifact.engineDartSdkPath',
236+
'--suppress-analytics',
195237
],
196238
stdin: IOSink(stdin.sink),
197239
),
@@ -206,6 +248,7 @@ void main() {
206248
fileSystem: MemoryFileSystem.test(),
207249
processManager: processManager,
208250
allProjectValidators: <ProjectValidator>[],
251+
suppressAnalytics: true,
209252
);
210253

211254
final TestFlutterCommandRunner commandRunner = TestFlutterCommandRunner();
@@ -235,6 +278,7 @@ void main() {
235278
'--disable-server-feature-search',
236279
'--sdk',
237280
'Artifact.engineDartSdkPath',
281+
'--suppress-analytics',
238282
],
239283
stdin: IOSink(stdin.sink),
240284
stdout: '''
@@ -254,6 +298,7 @@ void main() {
254298
fileSystem: fileSystem,
255299
processManager: processManager,
256300
allProjectValidators: <ProjectValidator>[],
301+
suppressAnalytics: true,
257302
);
258303

259304
await FakeAsync().run((FakeAsync time) async {
@@ -288,6 +333,7 @@ void main() {
288333
'--disable-server-feature-search',
289334
'--sdk',
290335
'Artifact.engineDartSdkPath',
336+
'--suppress-analytics',
291337
],
292338
stdin: IOSink(stdin.sink),
293339
stdout: '''
@@ -307,6 +353,7 @@ void main() {
307353
fileSystem: MemoryFileSystem.test(),
308354
processManager: processManager,
309355
allProjectValidators: <ProjectValidator>[],
356+
suppressAnalytics: true,
310357
);
311358

312359
await FakeAsync().run((FakeAsync time) async {

packages/flutter_tools/test/commands.shard/hermetic/analyze_suggestion_test.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ void main() {
9898
ProjectValidatorDummy(),
9999
ProjectValidatorSecondDummy()
100100
],
101+
suppressAnalytics: true,
101102
);
102103
final CommandRunner<void> runner = createTestCommandRunner(command);
103104

@@ -129,6 +130,7 @@ void main() {
129130
allProjectValidators: <ProjectValidator>[
130131
ProjectValidatorCrash(),
131132
],
133+
suppressAnalytics: true,
132134
);
133135
final CommandRunner<void> runner = createTestCommandRunner(command);
134136

@@ -149,6 +151,7 @@ void main() {
149151
terminal: terminal,
150152
processManager: processManager,
151153
allProjectValidators: <ProjectValidator>[],
154+
suppressAnalytics: true,
152155
);
153156
final CommandRunner<void> runner = createTestCommandRunner(command);
154157
Future<void> result () => runner.run(<String>['analyze', '--suggestions', '--watch']);

packages/flutter_tools/test/commands.shard/hermetic/analyze_test.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ void main() {
7070
processManager: processManager,
7171
terminal: terminal,
7272
allProjectValidators: <ProjectValidator>[],
73+
suppressAnalytics: true,
7374
);
7475
runner = createTestCommandRunner(command);
7576

@@ -95,6 +96,7 @@ void main() {
9596
'--disable-server-feature-search',
9697
'--sdk',
9798
'Artifact.engineDartSdkPath',
99+
'--suppress-analytics',
98100
],
99101
exitCode: SIGABRT,
100102
stderr: stderr,

packages/flutter_tools/test/integration.shard/analyze_suggestions_integration_test.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ void main() {
3737
terminal: globals.terminal,
3838
processManager: globals.processManager,
3939
allProjectValidators: <ProjectValidator>[GeneralInfoProjectValidator()],
40+
suppressAnalytics: true,
4041
);
4142
final CommandRunner<void> runner = createTestCommandRunner(command);
4243

@@ -73,6 +74,7 @@ void main() {
7374
allProjectValidators: <ProjectValidator>[
7475
PubDependenciesProjectValidator(globals.processManager),
7576
],
77+
suppressAnalytics: true,
7678
);
7779
final CommandRunner<void> runner = createTestCommandRunner(command);
7880

0 commit comments

Comments
 (0)