blob: 3871d6d2da1485f6cb1b7ce8de33c2ab42e74db1 [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import '../base/platform.dart';
import '../doctor.dart';
import 'chrome.dart';
import 'workflow.dart';
/// A validator that checks whether chrome is installed and can run.
class WebValidator extends DoctorValidator {
const WebValidator() : super('Chrome - develop for the web');
@override
Future<ValidationResult> validate() async {
final String chrome = findChromeExecutable();
final bool canRunChrome = canFindChrome();
final List<ValidationMessage> messages = <ValidationMessage>[];
if (platform.environment.containsKey(kChromeEnvironment)) {
if (!canRunChrome) {
messages.add(ValidationMessage.hint('$chrome is not executable.'));
} else {
messages.add(ValidationMessage('$kChromeEnvironment = $chrome'));
}
} else {
if (!canRunChrome) {
messages.add(ValidationMessage.hint('$kChromeEnvironment not set'));
} else {
messages.add(ValidationMessage('Chrome at $chrome'));
}
}
if (!canRunChrome) {
return ValidationResult(
ValidationType.missing,
messages,
statusInfo: 'Cannot find chrome executable at $chrome',
);
}
return ValidationResult(
ValidationType.installed,
messages,
);
}
}