chromium/chrome/browser/app_mode/app_mode_utils.cc

// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/app_mode/app_mode_utils.h"

#include <stddef.h>

#include <optional>

#include "base/check.h"
#include "base/command_line.h"
#include "base/containers/contains.h"
#include "base/feature_list.h"
#include "base/strings/string_split.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/policy/policy_util.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "chromeos/components/kiosk/kiosk_utils.h"
#include "components/content_settings/core/common/content_settings_pattern.h"
#include "components/permissions/features.h"
#include "components/prefs/pref_service.h"
#include "url/gurl.h"

namespace {

// If the device is running in forced app mode, returns the ID of the app for
// which the device is forced in app mode. Otherwise, returns nullopt.
std::optional<std::string> GetForcedAppModeApp() {}

// This method matches the `origin` with the url patterns from
// https://chromeenterprise.google/policies/url-patterns/. Note: just using the
// "*" wildcard is not allowed.
#if BUILDFLAG(IS_CHROMEOS)
bool IsOriginAllowedByPermissionFeatureFlag(
    const std::vector<std::string>& allowlist,
    const GURL& origin) {
  if (allowlist.empty()) {
    return false;
  }

  for (auto const& value : allowlist) {
    ContentSettingsPattern pattern = ContentSettingsPattern::FromString(value);
    if (pattern == ContentSettingsPattern::Wildcard() || !pattern.IsValid()) {
      continue;
    }

    if (pattern.Matches(origin)) {
      return true;
    }
  }

  return false;
}
#endif

}  // namespace

bool IsCommandAllowedInAppMode(int command_id, bool is_popup) {}

bool IsRunningInAppMode() {}

bool IsRunningInForcedAppMode() {}

bool IsRunningInForcedAppModeForApp(const std::string& app_id) {}

bool IsWebKioskOriginAllowed(const PrefService* prefs, const GURL& origin) {}