Closed Bug 860312 Opened 12 years ago Closed 2 years ago

DOM properties emit deprecation or other warnings when debugger tries to enumerate them

Categories

(DevTools :: Console, defect, P2)

x86_64
Windows 7
defect

Tracking

(firefox114 fixed)

RESOLVED FIXED
114 Branch
Tracking Status
firefox114 --- fixed

People

(Reporter: bj, Assigned: nchevobbe)

References

Details

Attachments

(4 files, 2 obsolete files)

I am seeing errors in the web console from chrome code with the 10 April 2013 Nightly. Steps to reproduce: - Visit https://www.mozilla.org/en-US/ . - Open the Web Console. - Clear the console window. - Execute "inspect(document)". - Click the arrow head to the left of __proto__. Expected result: - __proto__ expands with no errors. Actual result: - __proto__ expands with two errors in the Web Console: -- [11:32:30.811] Use of inputEncoding is deprecated. @ chrome://global/content/devtools/dbg-script-actors.js:1697 [11:32:30.812] Ignoring get or set of property that has [LenientThis] because the "this" object is incorrect. @ chrome://global/content/devtools/dbg-script-actors.js:1697 The relevant line of code is: rv = fn.call(chain[i]); Note 1: I used control-c, control-v to copy each error. The first error comes with a line containing "--" as part of the copy, the second error does not have that extra line. Note 2: Expanding __proto__ again in the same tab will produce no additional error messages, but expanding in a new tab will generate the errors.
This is caused by the debugger enumerating all properties in order to send them across the remote debugging protocol. Various DOM properties are instrumented to emit deprecation or other warnings on such access and I don't know how the debugger could silence them without modifying DOM code.
moving to debugger.
Component: Developer Tools: Console → Developer Tools: Debugger
Priority: -- → P3
Can someone please retest this please?
I can repro this on nightly
Summary: Two errors from inspect(document): "inputEncoding" and "LenientThis" → DOM properties emit deprecation or other warnings when debugger tries to enumerate them
This issue consistently happens in ff42 - forcing me to switch to chrome :-(
See Also: → 1298830
Product: Firefox → DevTools
Component: Debugger → Console
Priority: P3 → P2

Nicolas, could you help me understand if this would be on Console or Inspector?

Flags: needinfo?(nchevobbe)

This is on the console

Flags: needinfo?(nchevobbe)

For future reference:

This is the code that triggers the warnings: devtools/server/actors/object.js#463

We could fix this in two ways:

  1. maintain a list of deprecated properties in devtools code, and avoid calling the getter if it is in the list of deprecated properties
  2. find a way to get the information directly from the webidl files, since the warning mechanism is implemented there, by having a [Deprecated annotation above the property (see https://searchfox.org/mozilla-central/search?q=%5BDeprecated&path=&case=true&regexp=false)

1. is more straightforward, at the expense of having to manually update the list (and possibly miss new deprecation)
2. seems to be the proper way to go, but the work might not be trivial

We've been talking in the past of using webidl files for other means in DevTools (e.g. autocompletion parameters hints in the console), so maybe we should dedicate some time to work on that. There's a already a webidl -> JS AST library in the tree (https://searchfox.org/mozilla-central/source/testing/web-platform/tests/resources/webidl2/lib/webidl2.js), so maybe we could take advantage of that.

This is the AST produced when parsing dom/webidl/EventHandler.webidl with webidl2.js

[
  {
    "type": "callback",
    "name": "EventHandlerNonNull",
    "idlType": {
      "type": "return-type",
      "extAttrs": [],
      "generic": "",
      "nullable": false,
      "union": false,
      "idlType": "any"
    },
    "arguments": [
      {
        "type": "argument",
        "name": "event",
        "extAttrs": [],
        "idlType": {
          "type": "argument-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "Event"
        },
        "default": null,
        "optional": false,
        "variadic": false
      }
    ],
    "extAttrs": [
      {
        "type": "extended-attribute",
        "name": "TreatNonObjectAsNull",
        "rhs": null,
        "arguments": []
      }
    ]
  },
  {
    "type": "typedef",
    "name": "EventHandler",
    "idlType": {
      "type": "typedef-type",
      "extAttrs": [],
      "generic": "",
      "nullable": true,
      "union": false,
      "idlType": "EventHandlerNonNull"
    },
    "extAttrs": []
  },
  {
    "type": "callback",
    "name": "OnBeforeUnloadEventHandlerNonNull",
    "idlType": {
      "type": "return-type",
      "extAttrs": [],
      "generic": "",
      "nullable": true,
      "union": false,
      "idlType": "DOMString"
    },
    "arguments": [
      {
        "type": "argument",
        "name": "event",
        "extAttrs": [],
        "idlType": {
          "type": "argument-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "Event"
        },
        "default": null,
        "optional": false,
        "variadic": false
      }
    ],
    "extAttrs": [
      {
        "type": "extended-attribute",
        "name": "TreatNonObjectAsNull",
        "rhs": null,
        "arguments": []
      }
    ]
  },
  {
    "type": "typedef",
    "name": "OnBeforeUnloadEventHandler",
    "idlType": {
      "type": "typedef-type",
      "extAttrs": [],
      "generic": "",
      "nullable": true,
      "union": false,
      "idlType": "OnBeforeUnloadEventHandlerNonNull"
    },
    "extAttrs": []
  },
  {
    "type": "callback",
    "name": "OnErrorEventHandlerNonNull",
    "idlType": {
      "type": "return-type",
      "extAttrs": [],
      "generic": "",
      "nullable": false,
      "union": false,
      "idlType": "any"
    },
    "arguments": [
      {
        "type": "argument",
        "name": "event",
        "extAttrs": [],
        "idlType": {
          "type": "argument-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": true,
          "idlType": [
            {
              "type": null,
              "extAttrs": [],
              "generic": "",
              "nullable": false,
              "union": false,
              "idlType": "Event"
            },
            {
              "type": null,
              "extAttrs": [],
              "generic": "",
              "nullable": false,
              "union": false,
              "idlType": "DOMString"
            }
          ]
        },
        "default": null,
        "optional": false,
        "variadic": false
      },
      {
        "type": "argument",
        "name": "source",
        "extAttrs": [],
        "idlType": {
          "type": "argument-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "DOMString"
        },
        "default": null,
        "optional": true,
        "variadic": false
      },
      {
        "type": "argument",
        "name": "lineno",
        "extAttrs": [],
        "idlType": {
          "type": "argument-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "unsigned long"
        },
        "default": null,
        "optional": true,
        "variadic": false
      },
      {
        "type": "argument",
        "name": "column",
        "extAttrs": [],
        "idlType": {
          "type": "argument-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "unsigned long"
        },
        "default": null,
        "optional": true,
        "variadic": false
      },
      {
        "type": "argument",
        "name": "error",
        "extAttrs": [],
        "idlType": {
          "type": "argument-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "any"
        },
        "default": null,
        "optional": true,
        "variadic": false
      }
    ],
    "extAttrs": [
      {
        "type": "extended-attribute",
        "name": "TreatNonObjectAsNull",
        "rhs": null,
        "arguments": []
      }
    ]
  },
  {
    "type": "typedef",
    "name": "OnErrorEventHandler",
    "idlType": {
      "type": "typedef-type",
      "extAttrs": [],
      "generic": "",
      "nullable": true,
      "union": false,
      "idlType": "OnErrorEventHandlerNonNull"
    },
    "extAttrs": []
  },
  {
    "type": "interface mixin",
    "name": "GlobalEventHandlers",
    "inheritance": null,
    "members": [
      {
        "type": "attribute",
        "name": "onabort",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onblur",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onfocus",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onauxclick",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onbeforeinput",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Pref",
            "rhs": {
              "type": "string",
              "value": "\"dom.input_events.beforeinput.enabled\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "oncanplay",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "oncanplaythrough",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onchange",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onclick",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onclose",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "oncontextmenu",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "oncuechange",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ondblclick",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ondrag",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ondragend",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ondragenter",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ondragexit",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ondragleave",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ondragover",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ondragstart",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ondrop",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ondurationchange",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onemptied",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onended",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onformdata",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Pref",
            "rhs": {
              "type": "string",
              "value": "\"dom.formdata.event.enabled\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "oninput",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "oninvalid",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onkeydown",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onkeypress",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onkeyup",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onload",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onloadeddata",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onloadedmetadata",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onloadend",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onloadstart",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onmousedown",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onmouseenter",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "LenientThis",
            "rhs": null,
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onmouseleave",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "LenientThis",
            "rhs": null,
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onmousemove",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onmouseout",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onmouseover",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onmouseup",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onwheel",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onpause",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onplay",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onplaying",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onprogress",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onratechange",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onreset",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onresize",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onscroll",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onseeked",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onseeking",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onselect",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onshow",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onstalled",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onsubmit",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onsuspend",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ontimeupdate",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onvolumechange",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onwaiting",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onselectstart",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Pref",
            "rhs": {
              "type": "string",
              "value": "\"dom.select_events.enabled\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ontoggle",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onpointercancel",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Pref",
            "rhs": {
              "type": "string",
              "value": "\"dom.w3c_pointer_events.enabled\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onpointerdown",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Pref",
            "rhs": {
              "type": "string",
              "value": "\"dom.w3c_pointer_events.enabled\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onpointerup",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Pref",
            "rhs": {
              "type": "string",
              "value": "\"dom.w3c_pointer_events.enabled\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onpointermove",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Pref",
            "rhs": {
              "type": "string",
              "value": "\"dom.w3c_pointer_events.enabled\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onpointerout",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Pref",
            "rhs": {
              "type": "string",
              "value": "\"dom.w3c_pointer_events.enabled\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onpointerover",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Pref",
            "rhs": {
              "type": "string",
              "value": "\"dom.w3c_pointer_events.enabled\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onpointerenter",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Pref",
            "rhs": {
              "type": "string",
              "value": "\"dom.w3c_pointer_events.enabled\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onpointerleave",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Pref",
            "rhs": {
              "type": "string",
              "value": "\"dom.w3c_pointer_events.enabled\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ongotpointercapture",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Pref",
            "rhs": {
              "type": "string",
              "value": "\"dom.w3c_pointer_events.enabled\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onlostpointercapture",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Pref",
            "rhs": {
              "type": "string",
              "value": "\"dom.w3c_pointer_events.enabled\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onmozfullscreenchange",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Deprecated",
            "rhs": {
              "type": "string",
              "value": "\"MozfullscreenchangeDeprecatedPrefix\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onmozfullscreenerror",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Deprecated",
            "rhs": {
              "type": "string",
              "value": "\"MozfullscreenerrorDeprecatedPrefix\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onanimationcancel",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onanimationend",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onanimationiteration",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onanimationstart",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ontransitioncancel",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ontransitionend",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ontransitionrun",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ontransitionstart",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onwebkitanimationend",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "BinaryName",
            "rhs": {
              "type": "string",
              "value": "\"onwebkitAnimationEnd\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onwebkitanimationiteration",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "BinaryName",
            "rhs": {
              "type": "string",
              "value": "\"onwebkitAnimationIteration\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onwebkitanimationstart",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "BinaryName",
            "rhs": {
              "type": "string",
              "value": "\"onwebkitAnimationStart\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onwebkittransitionend",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "BinaryName",
            "rhs": {
              "type": "string",
              "value": "\"onwebkitTransitionEnd\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      }
    ],
    "extAttrs": [],
    "partial": false
  },
  {
    "type": "interface mixin",
    "name": "WindowEventHandlers",
    "inheritance": null,
    "members": [
      {
        "type": "attribute",
        "name": "onafterprint",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onbeforeprint",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onbeforeunload",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "OnBeforeUnloadEventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onhashchange",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onlanguagechange",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onmessage",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onmessageerror",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onoffline",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "ononline",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onpagehide",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onpageshow",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onpopstate",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onrejectionhandled",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onstorage",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onunhandledrejection",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onunload",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      }
    ],
    "extAttrs": [],
    "partial": false
  },
  {
    "type": "interface mixin",
    "name": "DocumentAndElementEventHandlers",
    "inheritance": null,
    "members": [
      {
        "type": "attribute",
        "name": "oncopy",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "oncut",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      },
      {
        "type": "attribute",
        "name": "onpaste",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      }
    ],
    "extAttrs": [],
    "partial": false
  },
  {
    "type": "interface mixin",
    "name": "OnErrorEventHandlerForNodes",
    "inheritance": null,
    "members": [
      {
        "type": "attribute",
        "name": "onerror",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      }
    ],
    "extAttrs": [],
    "partial": false
  },
  {
    "type": "interface mixin",
    "name": "OnErrorEventHandlerForWindow",
    "inheritance": null,
    "members": [
      {
        "type": "attribute",
        "name": "onerror",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "OnErrorEventHandler"
        },
        "extAttrs": [],
        "special": "",
        "readonly": false
      }
    ],
    "extAttrs": [],
    "partial": false
  }
]

We could detect deprecated properties by checking the existence of an item with a name of "Deprecated" in extraAttrs:

{
        "type": "attribute",
        "name": "onmozfullscreenchange",
        "idlType": {
          "type": "attribute-type",
          "extAttrs": [],
          "generic": "",
          "nullable": false,
          "union": false,
          "idlType": "EventHandler"
        },
        "extAttrs": [
          {
            "type": "extended-attribute",
            "name": "Deprecated",
            "rhs": {
              "type": "string",
              "value": "\"MozfullscreenchangeDeprecatedPrefix\""
            },
            "arguments": []
          }
        ],
        "special": "",
        "readonly": false
      }
Assignee: nobody → nchevobbe
Attachment #9158871 - Attachment description: Bug 860312 - Generate list of deprecated DOM methods and attributes → Bug 860312 - [devtools] Generate a list of deprecated DOM methods and attributes. r=ladybenko.
Status: NEW → ASSIGNED
Depends on: 1686417

Comment on attachment 9158871 [details]
Bug 860312 - [devtools] Generate a list of deprecated DOM methods and attributes. r=ladybenko.

Revision D80864 was moved to bug 1686417. Setting attachment 9158871 [details] to obsolete.

Attachment #9158871 - Attachment is obsolete: true
Severity: normal → S3

The severity field for this bug is relatively low, S3. However, the bug has 5 duplicates.
:nchevobbe, could you consider increasing the bug severity?

For more information, please visit auto_nag documentation.

Flags: needinfo?(nchevobbe)
Flags: needinfo?(nchevobbe)
Duplicate of this bug: 1418904

As the drawback of not having the safeGetter evaluated is quite minimal, we taking
a very simple route and only check the getter name against the list of deprecated
getter names.
We didn't have test for deprecated warnings, so one is added where we check such
messages are not emitted when expanding an object inspector.

Depends on D174056

Attachment #9197273 - Attachment is obsolete: true

Getters with LegacyLenientThis attribute will trigger a warning in the console
if it's called with the unexpected this.
We can't tell in DevTools if we have the "right" this.
For example displaying an HTMLDivElementPrototype object, we'll trigger the
warning because of the onmouseenter getter, which is supposed to be called
with the HTMLElement instance, which we don't have at this point.

For this reason, we exclude those from being safe getters, which will prevent
triggering the warning.

There are not a lot of properties with the [LegacyLenientThis] attribute,
so I feel like it's fine putting those into the deprecated list, but maybe
we could rename the file so it better conveys what it holds.

Depends on D174057

Attachment #9325900 - Attachment description: WIP: Bug 860312 - [devtools] Use same structure in webidl-deprecated-list.js than in webidl-pure-allowlist.js → Bug 860312 - [devtools] Generate list of unsafe getters. r=#devtools-reviewers.
Attachment #9325927 - Attachment description: Bug 860312 - [devtools] Add LegacyLenientThis getters to deprecated list. r=#devtools-reviewers. → Bug 860312 - [devtools] Add LegacyLenientThis getters to unsafe list. r=#devtools-reviewers.
Pushed by nchevobbe@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/aa2d7ec51634 [devtools] Generate list of unsafe getters. r=devtools-reviewers,ochameau. https://hg.mozilla.org/integration/autoland/rev/1bedc0cbd0cb [devtools] Check deprecated list before calling a getter. r=devtools-reviewers,ochameau. https://hg.mozilla.org/integration/autoland/rev/2470693a461a [devtools] Add LegacyLenientThis getters to unsafe list. r=devtools-reviewers,ochameau.
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 114 Branch
Duplicate of this bug: 1582080
See Also: 1298830
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: