chromium/components/webapps/common/web_page_metadata.mojom

// 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.

module webapps.mojom;

import "mojo/public/mojom/base/string16.mojom";
import "url/mojom/url.mojom";

enum WebPageMobileCapable {
  UNSPECIFIED,
  ENABLED,       // If <meta name="mobile-web-app-capable" content="yes">
  ENABLED_APPLE  // If <meta name="apple-mobile-web-app-capable" content="yes">
};

// Corresponding to a <link rel="icon"...> tag (or other such tags) which
// optionally specifies an icon size.
struct WebPageIconInfo {
  url.mojom.Url url;
  int32 square_size_px;  // 0 if unspecified.
};

// Extracted from web page specified meta data.
struct WebPageMetadata {
  // Extracted from a <meta name="application-name" ...> tag if any.
  mojo_base.mojom.String16 application_name;

  // Extracted from a <meta name="description" ...> tag if any.
  mojo_base.mojom.String16 description;

  // Extracted from a <meta name="application-url" ...> tag if any.
  url.mojom.Url application_url;

  // Extracted from document.title if any.
  mojo_base.mojom.String16 title;

  // Extracted from all <link rel="icon"...> tags and other such tags that
  // specify icons.
  array<WebPageIconInfo> icons;

  // Extracted from a <meta name="{apple-}mobile-web-app-capable"...> tag if
  // specified.
  WebPageMobileCapable mobile_capable = WebPageMobileCapable.UNSPECIFIED;
};