defaultBrowser function

Browser? defaultBrowser({
  1. String? sqlite3Path,
})

Implementation

Browser? defaultBrowser({String? sqlite3Path}) {
  var logger = Logger();

  String? browser;
  if (Platform.isWindows) {
    browser = _defaultBrowserWin();
  } else if (Platform.isLinux) {
    browser = _defaultBrowserLinux();
  } else {
    logger.w('Default browser feature not supported on this OS');
    return null;
  }

  if (browser == null) {
    logger.w('No default browser found');
    return null;
  }

  browser = browser.toLowerCase();

  var browsers = [
    Chromium(sqlite3Path: sqlite3Path),
    Chrome(sqlite3Path: sqlite3Path),
    Firefox(sqlite3Path: sqlite3Path),
    LibreWolf(sqlite3Path: sqlite3Path),
    Safari(sqlite3Path: sqlite3Path),
    Edge(sqlite3Path: sqlite3Path),
    Opera(sqlite3Path: sqlite3Path),
    OperaGX(sqlite3Path: sqlite3Path),
    Brave(sqlite3Path: sqlite3Path),
    Vivaldi(sqlite3Path: sqlite3Path),
  ];

  for (var b in browsers) {
    var aliases = b.aliases ?? [];

    if (b.name.toLowerCase() == browser || aliases.contains(browser)) {
      return b;
    }
  }

  logger.w('Current default browser is not supported');
  return null;
}