chromium/content/test/fuzzer/html_tree.proto

syntax = "proto3";

message Document {
  Tag root = 1;
}

message Tag {
  Name name = 1;
  repeated Attribute attrs = 2;
  repeated Tag subtags = 3;

  enum Name {
    A = 0;
    ABBR = 1;
    ADDRESS = 2;
    AREA = 3;
    ARTICLE = 4;
    ASIDE = 5;
    AUDIO = 6;
    B = 7;
    BASE = 8;
    BDI = 9;
    BDO = 10;
    BLOCKQUOTE = 11;
    BODY = 12;
    BR = 13;
    BUTTON = 14;
    CANVAS = 15;
    CAPTION = 16;
    CITE = 17;
    CODE = 18;
    COL = 19;
    COLGROUP = 20;
    DATA = 21;
    DATALIST = 22;
    DD = 23;
    DEL = 24;
    DFN = 25;
    DIV = 26;
    DL = 27;
    DT = 28;
    EM = 29;
    EMBED = 30;
    FIELDSET = 31;
    FIGCAPTION = 32;
    FIGURE = 33;
    FOOTER = 34;
    FORM = 35;
    H1 = 36;
    H2 = 37;
    H3 = 38;
    H4 = 39;
    H5 = 40;
    H6 = 41;
    HEAD = 42;
    HEADER = 43;
    HR = 44;
    HTML = 45;
    I = 46;
    IFRAME = 47;
    IMG = 48;
    INPUT = 49;
    INS = 50;
    KBD = 51;
    KEYGEN = 52;
    LABEL = 53;
    LEGEND = 54;
    LI = 55;
    LINK = 56;
    MAIN = 57;
    MAP = 58;
    MARK = 59;
    META = 60;
    METER = 61;
    NAV = 62;
    NOSCRIPT = 63;
    OBJECT = 64;
    OL = 65;
    OPTGROUP = 66;
    OPTION = 67;
    OUTPUT = 68;
    P = 69;
    PARAM = 70;
    PRE = 71;
    PROGRESS = 72;
    Q = 73;
    RB = 74;
    RP = 75;
    RT = 76;
    RTC = 77;
    RUBY = 78;
    S = 79;
    SAMP = 80;
    SCRIPT = 81;
    SECTION = 82;
    SELECT = 83;
    SMALL = 84;
    SOURCE = 85;
    SPAN = 86;
    STRONG = 87;
    STYLE = 88;
    SUB = 89;
    SUP = 90;
    TABLE = 91;
    TBODY = 92;
    TD = 93;
    TEMPLATE = 94;
    TEXTAREA = 95;
    TFOOT = 96;
    TH = 97;
    THEAD = 98;
    TIME = 99;
    TITLE = 100;
    TR = 101;
    TRACK = 102;
    U = 103;
    UL = 104;
    VAR = 105;
    VIDEO = 106;
    WBR = 107;
  }
}

message Attribute {
  Name name = 1;
  Value value = 2;

  message Value {
    oneof value {
      bool bool_value = 1;
      uint64 uint_value = 2;
      int64 int_value = 3;
      double double_value = 4;

      int64 px_value = 5;
      uint32 pct_value = 6;
    }
  }

  enum Name {
    ACCEPT = 0;
    ACCEPT_CHARSET = 1;
    ACCESSKEY = 2;
    ACTION = 3;
    ALIGN = 4;
    ALT = 5;
    ASYNC = 6;
    AUTOCOMPLETE = 7;
    AUTOFOCUS = 8;
    AUTOPLAY = 9;
    AUTOSAVE = 10;
    BGCOLOR = 11;
    BORDER = 12;
    BUFFERED = 13;
    CHALLENGE = 14;
    CHARSET = 15;
    CHECKED = 16;
    CITE = 17;
    CLASS = 18;
    CODE = 19;
    CODEBASE = 20;
    COLOR = 21;
    COLS = 22;
    COLSPAN = 23;
    CONTENT = 24;
    CONTENTEDITABLE = 25;
    CONTEXTMENU = 26;
    CONTROLS = 27;
    DATA = 28;
    DATETIME = 29;
    DEFAULT = 30;
    DEFER = 31;
    DIR = 32;
    DIRNAME = 33;
    DISABLED = 34;
    DOWNLOAD = 35;
    DRAGGABLE = 36;
    DROPZONE = 37;
    ENCTYPE = 38;
    FOR = 39;
    FORM = 40;
    FORMACTION = 41;
    HEADERS = 42;
    HEIGHT = 43;
    HIDDEN = 44;
    HIGH = 45;
    HREF = 46;
    HREFLANG = 47;
    ICON = 48;
    ID = 49;
    ISMAP = 50;
    ITEMPROP = 51;
    KEYTYPE = 52;
    KIND = 53;
    LABEL = 54;
    LANG = 55;
    LANGUAGE = 56;
    LIST = 57;
    LOOP = 58;
    LOW = 59;
    MANIFEST = 60;
    MAX = 61;
    MAXLENGTH = 62;
    MEDIA = 63;
    METHOD = 64;
    MIN = 65;
    MULTIPLE = 66;
    MUTED = 67;
    NAME = 68;
    NOVALIDATE = 69;
    OPEN = 70;
    OPTIMUM = 71;
    PATTERN = 72;
    PING = 73;
    PLACEHOLDER = 74;
    POSTER = 75;
    PRELOAD = 76;
    RADIOGROUP = 77;
    READONLY = 78;
    REL = 79;
    REQUIRED = 80;
    REVERSED = 81;
    ROWS = 82;
    ROWSPAN = 83;
    SANDBOX = 84;
    SCOPE = 85;
    SCOPED = 86;
    SEAMLESS = 87;
    SELECTED = 88;
    SHAPE = 89;
    SIZE = 90;
    SIZES = 91;
    SPAN = 92;
    SPELLCHECK = 93;
    SRC = 94;
    SRCDOC = 95;
    SRCLANG = 96;
    SRCSET = 97;
    START = 98;
    STEP = 99;
    STYLE = 100;
    SUMMARY = 101;
    TABINDEX = 102;
    TARGET = 103;
    TITLE = 104;
    TYPE = 105;
    USEMAP = 106;
    VALUE = 107;
    WIDTH = 108;
    WRAP = 109;
  }
}