The bug occurs on both Firefox and Chrome. GIF demo below: Essentially, the bug seems to occur when your mouse is positioned over the location an element associated with a tooltip would appear and then creating that element (mouseenter event bug). In the GIF above, my mouse is positioned under the rightmost edge of such an element when that element is created via the play button. Here's another GIF demo, showcasing the equivalent bug with mouseleave: Console Log (Chrome): /editor/:12 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' https://*.googlesyndication.com https://*.doubleclick.net https://*.googlesyndication.com <a href="https://www.googletagservices.com" rel="nofollow">https://www.googletagservices.com</a> https://*.googlesyndication.com <a href="https://www.google-analytics.com" rel="nofollow">https://www.google-analytics.com</a> https://*.googlesyndication.com <a href="http://ajax.googleapis.com" rel="nofollow">http://ajax.googleapis.com</a> https://*.googlesyndication.com <a href="https://cdn.firebase.com" rel="nofollow">https://cdn.firebase.com</a> https://*.googlesyndication.com https://*.tokbox.com https://*.googlesyndication.com <a href="http://static.opentok.com" rel="nofollow">http://static.opentok.com</a> https://*.googlesyndication.com <a href="http://cdn.crowdin.com" rel="nofollow">http://cdn.crowdin.com</a> https://*.googlesyndication.com <a href="http://stun.l.google.com" rel="nofollow">http://stun.l.google.com</a> ". Either the 'unsafe-inline' keyword, a hash ('sha256-9st5SYWtKNCLuReR6pANWV72WF1J+6HfxtEoO8wOVIk='), or a nonce ('nonce-...') is required to enable inline execution. /editor/:13 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' https://*.googlesyndication.com https://*.doubleclick.net https://*.googlesyndication.com <a href="https://www.googletagservices.com" rel="nofollow">https://www.googletagservices.com</a> https://*.googlesyndication.com <a href="https://www.google-analytics.com" rel="nofollow">https://www.google-analytics.com</a> https://*.googlesyndication.com <a href="http://ajax.googleapis.com" rel="nofollow">http://ajax.googleapis.com</a> https://*.googlesyndication.com <a href="https://cdn.firebase.com" rel="nofollow">https://cdn.firebase.com</a> https://*.googlesyndication.com https://*.tokbox.com https://*.googlesyndication.com <a href="http://static.opentok.com" rel="nofollow">http://static.opentok.com</a> https://*.googlesyndication.com <a href="http://cdn.crowdin.com" rel="nofollow">http://cdn.crowdin.com</a> https://*.googlesyndication.com <a href="http://stun.l.google.com" rel="nofollow">http://stun.l.google.com</a> ". Either the 'unsafe-inline' keyword, a hash ('sha256-npngRtQYomQz2/PGlo3OMaFWOvAvrm65p+WFyZPCRuo='), or a nonce ('nonce-...') is required to enable inline execution. app.js?1486144092:31 70 app.js?1486144092:31 TOUCH SUPPORTED: false app.js?1486144092:31 USING WEBGL ACCELERATION... app.js?1486144092:31 WEBGL STARTUP SUCCESS app.js?1486144092:33 Custom Sheet Translation app.js?1486144092:26 select app.js?1486144092:26 Switch mode to select app.js?1486144092:42 Initializing new dice engine with randomness... app.js?1486144092:42 Using random entropy app.js?1486144092:46 Compiling sheet... app.js?1486144092:46 Found rolltemplate: simple app.js?1486144092:46 Found rolltemplate: atk app.js?1486144092:46 Found rolltemplate: dmg app.js?1486144092:46 Found rolltemplate: atkdmg app.js?1486144092:46 Found rolltemplate: desc app.js?1486144092:46 Found rolltemplate: spell app.js?1486144092:46 Found rolltemplate: npc app.js?1486144092:46 Found rolltemplate: npcatk app.js?1486144092:46 Found rolltemplate: npcdmg app.js?1486144092:46 Found rolltemplate: npcaction app.js?1486144092:46 Found webworker script app.js?1486144092:46 Finding sheet rolls... app.js?1486144092:47 window resize app.js?1486144092:32 Final set zoom! app.js?1486144092:31 UPDATE GL SIZE! app.js?1486144092:32 Final set zoom! tutorial_tips.js:7 tuts loaded app.roll20.net/:1 Mixed Content: The page at ' <a href="https://app.roll20.net/editor/" rel="nofollow">https://app.roll20.net/editor/</a> ' was loaded over HTTPS, but requested an insecure image ' <a href="http://imgsrv.roll20.net/?src=i.imgur.com/ZgULBCp.png" rel="nofollow">http://imgsrv.roll20.net/?src=i.imgur.com/ZgULBCp.png</a> '. This content should also be served over HTTPS. app.roll20.net/:1 Mixed Content: The page at ' <a href="https://app.roll20.net/editor/" rel="nofollow">https://app.roll20.net/editor/</a> ' was loaded over HTTPS, but requested an insecure image ' <a href="http://imgsrv.roll20.net/?src=i.imgur.com/3OxOqmb.png" rel="nofollow">http://imgsrv.roll20.net/?src=i.imgur.com/3OxOqmb.png</a> '. This content should also be served over HTTPS. app.roll20.net/:1 Mixed Content: The page at ' <a href="https://app.roll20.net/editor/" rel="nofollow">https://app.roll20.net/editor/</a> ' was loaded over HTTPS, but requested an insecure image ' <a href="http://imgsrv.roll20.net/?src=i.imgur.com/ZgULBCp.png" rel="nofollow">http://imgsrv.roll20.net/?src=i.imgur.com/ZgULBCp.png</a> '. This content should also be served over HTTPS. app.roll20.net/:1 Mixed Content: The page at ' <a href="https://app.roll20.net/editor/" rel="nofollow">https://app.roll20.net/editor/</a> ' was loaded over HTTPS, but requested an insecure image ' <a href="http://imgsrv.roll20.net/?src=i.imgur.com/ZgULBCp.png" rel="nofollow">http://imgsrv.roll20.net/?src=i.imgur.com/ZgULBCp.png</a> '. This content should also be served over HTTPS. app.roll20.net/:1 Mixed Content: The page at ' <a href="https://app.roll20.net/editor/" rel="nofollow">https://app.roll20.net/editor/</a> ' was loaded over HTTPS, but requested an insecure image ' <a href="http://imgsrv.roll20.net/?src=i.imgur.com/ZgULBCp.png" rel="nofollow">http://imgsrv.roll20.net/?src=i.imgur.com/ZgULBCp.png</a> '. This content should also be served over HTTPS. app.roll20.net/:1 Mixed Content: The page at ' <a href="https://app.roll20.net/editor/" rel="nofollow">https://app.roll20.net/editor/</a> ' was loaded over HTTPS, but requested an insecure image ' <a href="http://imgsrv.roll20.net/?src=i.imgur.com/py5B0cm.png" rel="nofollow">http://imgsrv.roll20.net/?src=i.imgur.com/py5B0cm.png</a> '. This content should also be served over HTTPS. app.roll20.net/:1 Mixed Content: The page at ' <a href="https://app.roll20.net/editor/" rel="nofollow">https://app.roll20.net/editor/</a> ' was loaded over HTTPS, but requested an insecure image ' <a href="http://imgsrv.roll20.net/?src=i.imgur.com/LoT21n1.png" rel="nofollow">http://imgsrv.roll20.net/?src=i.imgur.com/LoT21n1.png</a> '. This content should also be served over HTTPS. sheetsandboxworker.js?20160926:250Starting up WEB WORKER app.js?1486144092:38 Final page load. app.js?1486144092:48 Refresh jukebox List! app.js?1486144092:37 Auth'ed. app.js?1486144092:37 Go post auth! app.js?1486144092:37 initial setup app.js?1486144092:48 Refresh jukebox List! app.js?1486144092:35 T.r {attributes: Object, _escapedAttributes: Object, cid: "c0", changed: Object, _silent: Object…} app.js?1486144092:48 Refresh jukebox List! app.js?1486144092:40 refershing page listings! app.js?1486144092:37 Got players value... app.js?1486144092:37 joining game... app.js?1486144092:35 Full load page! app.js?1486144092:37 We have 1 pages app.js?1486144092:36 Global Volume: 100=1 app.js?1486144092:37 Deferred finish joining... app.js?1486144092:31 Firebase Online app.js?1486144092:37 handle page changes app.js?1486144092:37 false app.js?1486144092:45 Refresh Journal List! app.js?1486144092:45 Search took 2ms app.js?1486144092:40 refershing page listings! app.js?1486144092:33 Do refresh link cache! app.js?1486144092:37 init active page! app.js?1486144092:35 activate page! app.js?1486144092:35 FULLY ACTIVATE VIEWS FOR PAGE. app.js?1486144092:35 Graphics: 1 app.js?1486144092:35 Paths: 0 app.js?1486144092:35 Reorder by ZORDER app.js?1486144092:38 Scan for new plays! app.js?1486144092:45 Refresh Journal List! app.js?1486144092:45 Search took 3ms app.js?1486144092:40 refershing page listings! app.js?1486144092:35 Reorder by ZORDER app.js?1486144092:48 Refresh jukebox List! app.js?1486144092:42 Descending into madness... app.js?1486144092:42 Descending into madness... app.js?1486144092:38 Unable to find jukebox item! app.js?1486144092:38 Heard playingplaylist change to -KcFIJFiybzbLkYidHb7 app.js?1486144092:38 -KcFInSbb8ZGmVBX0eL4 app.js?1486144092:38 PLAYING TRACK app.js?1486144092:38 -KcFIn_7AIUEntvOrq4x app.js?1486144092:38 PLAYING TRACK app.js?1486144092:38 -KcFInggBDkKQYKXJO-H app.js?1486144092:38 PLAYING TRACK app.js?1486144092:38 -KcFJ9cpYPQuDCxi6Spd app.js?1486144092:38 PLAYING TRACK app.js?1486144092:48 Refresh jukebox List! app.js?1486144092:38 END SEARCH app.js?1486144092:48 Refresh jukebox List! app.js?1486144092:38 Scan for new plays!