kutlugsahin / smooth-dnd

drag and drop library for javascript
MIT License
598 stars 146 forks source link

Firefox: "null has no properties" error #59

Open HooFoo opened 4 years ago

HooFoo commented 4 years ago

I found hard to catch a bug with this library. There is no information about how to reproduce it and I don't know steps. But we catch this type of error in Sentry every day.
This is information form Sentry:

{
  "tags": [
    [
      "browser",
      "Firefox 69.0"
    ],
    [
      "browser.name",
      "Firefox"
    ],
    [
      "environment",
      "production"
    ],
    [
      "handled",
      "yes"
    ],
    [
      "level",
      "error"
    ],
    [
      "mechanism",
      "instrument"
    ],
    [
      "os.name",
      "Windows 7"
    ]
  ],
  "contexts": {
    "os": {
      "type": "os",
      "name": "Windows 7"
    },
    "browser": {
      "version": "69.0",
      "type": "browser",
      "name": "Firefox"
    }
  },
  "culprit": "matches(smooth-dnd/dist/index)",
  "environment": "production",
  "errors": [
    {
      "url": "webpack:///./node_modules/@sentry/browser/esm/helpers.js",
      "type": "js_no_source"
    },
    {
      "url": "webpack:///./node_modules/smooth-dnd/dist/index.js",
      "type": "js_no_source"
    }
  ],
  "exception": {
    "values": [
      {
        "stacktrace": {
          "frames": [
            {
              "function": "i",
              "abs_path": "webpack:///./node_modules/@sentry/browser/esm/helpers.js",
              "module": "@sentry/browser/esm/helpers",
              "filename": "./node_modules/@sentry/browser/esm/helpers.js",
              "lineno": 70,
              "colno": 1,
              "in_app": false,
              "data": {
              }
            },
            {
              "function": "Ae",
              "abs_path": "webpack:///./node_modules/smooth-dnd/dist/index.js",
              "module": "smooth-dnd/dist/index",
              "filename": "./node_modules/smooth-dnd/dist/index.js",
              "lineno": 1,
              "colno": 15624,
              "in_app": false,
              "data": {
              }
            },
            {
              "function": "z",
              "abs_path": "webpack:///./node_modules/smooth-dnd/dist/index.js",
              "module": "smooth-dnd/dist/index",
              "filename": "./node_modules/smooth-dnd/dist/index.js",
              "lineno": 1,
              "colno": 3823,
              "in_app": false,
              "data": {
              }
            },
            {
              "function": "matches",
              "abs_path": "webpack:///./node_modules/smooth-dnd/dist/index.js",
              "module": "smooth-dnd/dist/index",
              "filename": "./node_modules/smooth-dnd/dist/index.js",
              "lineno": 1,
              "colno": 11014,
              "in_app": false,
              "data": {
              }
            }
          ]
        },
        "type": "TypeError",
        "raw_stacktrace": {
          "frames": [
            {
              "function": "i",
              "abs_path": "",
              "post_context": [
                "//# sourceMappingURL\u003dvendor-fb35cfde966335625cea.js.map"
              ],
              "filename": "/packs/vendor-fb35cfde966335625cea.js",
              "lineno": 1,
              "colno": 476879,
              "in_app": false,
              "context_line": "{snip} (t,n)});return t.handleEvent?t.handleEvent.apply(this,u):t.apply(this,u)}catch(e){throw l+\u003d1,setTimeout(function(){l-\u003d1}),Object(a.i)(functi {snip}"
            },
            {
              "function": "Se",
              "abs_path": "",
              "post_context": [
                "//# sourceMappingURL\u003dvendor-fb35cfde966335625cea.js.map"
              ],
              "filename": "/packs/vendor-fb35cfde966335625cea.js",
              "lineno": 1,
              "colno": 3015851,
              "in_app": false,
              "context_line": "{snip} var t\u003dYe(e);if(!me\u0026\u0026(void 0\u003d\u003d\u003dt.button||0\u003d\u003d\u003dt.button)\u0026\u0026(fe\u003dC(t.target,\".\"+i))){var n\u003dC(fe,\".\"+l),r\u003dpe.filter(function(e){return e.element\u003d\u003d\u003d {snip}"
            },
            {
              "function": "C",
              "abs_path": "",
              "post_context": [
                "//# sourceMappingURL\u003dvendor-fb35cfde966335625cea.js.map"
              ],
              "filename": "/packs/vendor-fb35cfde966335625cea.js",
              "lineno": 1,
              "colno": 3004127,
              "in_app": false,
              "context_line": "{snip} tElement}return null},C\u003dfunction(e,t){for(var n\u003de;n;){if(n.matches(t))return n;n\u003dn.parentElement}return null},A\u003dfunction(e,t){return-1\u003ce.cla {snip}"
            },
            {
              "function": "X.prototype.matches\u003c",
              "abs_path": "",
              "post_context": [
                "//# sourceMappingURL\u003dvendor-fb35cfde966335625cea.js.map"
              ],
              "filename": "/packs/vendor-fb35cfde966335625cea.js",
              "lineno": 1,
              "colno": 3011324,
              "in_app": false,
              "context_line": "{snip} |X.prototype.webkitMatchesSelector||function(e){for(var t\u003d(this.document||this.ownerDocument).querySelectorAll(e),n\u003dt.length;0\u003c\u003d--n\u0026\u0026t.item( {snip}"
            }
          ]
        },
        "value": "null has no properties",
        "mechanism": {
          "data": {
            "function": "addEventListener",
            "handler": "Se",
            "target": "EventTarget"
          },
          "type": "instrument",
          "handled": true
        }
      }
    ]
  },
  "extra": {
    "arguments": [
      "MouseEvent"
    ]
  },
  "fingerprint": [
    "{{ default }}"
  ],
  "grouping_config": {
    "enhancements": "eJybzDhxY05qemJypZWRgaGlroGxrqHRBABbEwcC",
    "id": "legacy:2019-03-12"
  },
  "hashes": [
    "f6342ec01059081053a1292d949524f3"
  ],
  "key_id": "695882",
  "level": "error",
  "location": "./node_modules/smooth-dnd/dist/index.js",
  "logger": "",
  "metadata": {
    "function": "matches",
    "type": "TypeError",
    "value": "null has no properties",
    "filename": "./node_modules/smooth-dnd/dist/index.js"
  },
  "received": 1568124219.951,
  "request": {
    "url": "",
    "headers": [
      [
        "User-Agent",
        "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0"
      ]
    ]
  },
  "sdk": {
    "version": "5.4.3",
    "name": "sentry.javascript.browser",
    "packages": [
      {
        "version": "5.4.3",
        "name": "npm:@sentry/browser"
      }
    ],
    "integrations": [
      "InboundFilters",
      "FunctionToString",
      "TryCatch",
      "Breadcrumbs",
      "GlobalHandlers",
      "LinkedErrors",
      "UserAgent"
    ]
  },
  "timestamp": 1568124219.951,
  "title": "TypeError: null has no properties",
  "type": "error",
  "user": {
    "ip_address": ""
  },
  "version": "7"
}

I'll try to investigate more info and steps on how to reproduce it. If I'll found something helpful I'll add it here. More info: