blob: 0d1298f4244dab192d7092ee93cd843c5df20a66 [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_WEB_APPLICATIONS_SCOPE_EXTENSION_INFO_H_
#define CHROME_BROWSER_WEB_APPLICATIONS_SCOPE_EXTENSION_INFO_H_
#include <string>
#include <unordered_map>
#include "base/containers/flat_set.h"
#include "base/values.h"
#include "url/origin.h"
namespace web_app {
// Contains information about a web app's scope extension information derived
// from its web app manifest.
struct ScopeExtensionInfo {
// Reset the scope extension to its default state.
REINITIALIZES_AFTER_MOVE void Reset();
base::Value AsDebugValue() const;
url::Origin origin;
bool has_origin_wildcard = false;
};
bool operator==(const ScopeExtensionInfo& scope_extension1,
const ScopeExtensionInfo& scope_extension2);
bool operator!=(const ScopeExtensionInfo& scope_extension1,
const ScopeExtensionInfo& scope_extension2);
// Allow ScopeExtensionInfo to be used as a key in STL (for example, a std::set
// or std::map).
bool operator<(const ScopeExtensionInfo& scope_extension1,
const ScopeExtensionInfo& scope_extension2);
using ScopeExtensions = base::flat_set<ScopeExtensionInfo>;
using ScopeExtensionMap = std::unordered_map<std::string, ScopeExtensionInfo>;
} // namespace web_app
#endif // CHROME_BROWSER_WEB_APPLICATIONS_SCOPE_EXTENSION_INFO_H_