chromium/components/webapps/common/web_app_id.h

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

#ifndef COMPONENTS_WEBAPPS_COMMON_WEB_APP_ID_H_
#define COMPONENTS_WEBAPPS_COMMON_WEB_APP_ID_H_

#include <string>

class GURL;

namespace webapps {

// An example AppId id is "fedbieoalmbobgfjapopkghdmhgncnaa", and is derived
// from the web app's ManifestId (see below).
// This id starts with a URL which is then:
// - hashed using SHA256,
// - hashed using SHA256 again,
// - hex encoded into the characters 0-f,
// - transformed to only use alpha characters between a-p (inclusive).
// This algorithm was designed for historical reasons and needs to stay this way
// for backwards compatibility.
AppId;

// This is computed from the manifest's `start_url` and `id` members:
// https://www.w3.org/TR/appmanifest/#id-member. This can be hashed using
// GenerateAppIdFromManifestId in
// chrome/browser/web_applications/web_app_helpers.h to produce an AppId above.
ManifestId;

}  // namespace webapps

#endif  // COMPONENTS_WEBAPPS_COMMON_WEB_APP_ID_H_