// Copyright 2021 The Cobalt Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Custom, not in spec. Holds UA information specific to Cobalt.

dictionary CobaltUADataValues : UADataValues {
  DOMString cobaltBuildNumber;
  DOMString cobaltBuildConfiguration;
  DOMString jsEngineVersion;
  DOMString rasterizer;
  DOMString evergreenType;
  DOMString evergreenFileType;
  DOMString evergreenVersion;
  DOMString androidBuildFingerprint;
  DOMString androidOsExperience;
  DOMString starboardVersion;
  DOMString originalDesignManufacturer;
  DOMString deviceType;
  DOMString chipset;
  DOMString modelYear;
  DOMString deviceBrand;
  DOMString connectionType;
  DOMString aux;
};
