@@ -26,7 +26,7 @@ function getOption(key) {
2626class Panel {
2727 constructor ( id ) {
2828 this . id = id ;
29- this . elem = Debug . layer . querySelector ( '#' + CSS . escape ( this . id ) ) ;
29+ this . elem = Debug . shadow . querySelector ( '#' + CSS . escape ( this . id ) ) ;
3030 this . elem . Tracy = this . elem . Tracy || { } ;
3131 }
3232
@@ -37,7 +37,7 @@ class Panel {
3737 this . init = function ( ) { } ;
3838 elem . innerHTML = elem . tracyContent = elem . dataset . tracyContent ;
3939 delete elem . dataset . tracyContent ;
40- Tracy . Dumper . init ( Debug . layer ) ;
40+ Tracy . Dumper . init ( Debug . shadow ) ;
4141 evalScripts ( elem ) ;
4242
4343 draggable ( elem , {
@@ -154,7 +154,7 @@ class Panel {
154154 }
155155
156156 let doc = win . document ;
157- doc . write ( '<!DOCTYPE html><meta charset="utf-8"><body id ="tracy-debug">' ) ;
157+ doc . write ( '<!DOCTYPE html><meta charset="utf-8"><body class ="tracy-debug">' ) ;
158158
159159 let script = doc . createElement ( 'script' ) ;
160160 script . src = baseUrl + '_tracy_bar=js&XDEBUG_SESSION_STOP=1' ;
@@ -163,10 +163,10 @@ class Panel {
163163 doc . head . appendChild ( script ) ;
164164
165165 let meta = this . elem . parentElement . lastElementChild ;
166- doc . body . innerHTML = '<tracy- div itemscope>'
166+ doc . body . innerHTML = '<div itemscope>'
167167 + '<div class="tracy-panel tracy-mode-window" id="' + this . elem . id + '">' + this . elem . tracyContent + '</div>'
168168 + meta . outerHTML
169- + '</tracy- div>' ;
169+ + '</div>' ;
170170 evalScripts ( doc . body ) ;
171171 if ( this . elem . querySelector ( 'h1' ) ) {
172172 doc . title = this . elem . querySelector ( 'h1' ) . textContent ;
@@ -253,7 +253,7 @@ Panel.zIndexCounter = 1;
253253class Bar {
254254 init ( ) {
255255 this . id = 'tracy-debug-bar' ;
256- this . elem = Debug . layer . querySelector ( '#' + this . id ) ;
256+ this . elem = Debug . shadow . querySelector ( '#' + this . id ) ;
257257
258258 draggable ( this . elem , {
259259 handles : this . elem . querySelectorAll ( 'li:first-child' ) ,
@@ -357,7 +357,7 @@ class Bar {
357357
358358
359359 close ( ) {
360- Debug . layer . style . display = 'none' ;
360+ Debug . host . style . display = 'none' ;
361361 }
362362
363363
@@ -399,25 +399,28 @@ class Debug {
399399
400400 // Shadow DOM for CSS isolation
401401 let host = document . createElement ( 'tracy-bar' ) ;
402+ Debug . host = host ;
402403 let shadow = host . attachShadow ( { mode : 'open' } ) ;
403404 Debug . shadow = shadow ;
404405
405- // Clone CSS from document.head into shadow root
406- document . querySelectorAll ( 'style.tracy-debug' ) . forEach ( ( s ) => {
406+ // Clone CSS from document.head into shadow root (exclude BlueScreen CSS)
407+ document . querySelectorAll ( 'style.tracy-debug:not(.tracy-bs-css) ' ) . forEach ( ( s ) => {
407408 shadow . appendChild ( s . cloneNode ( true ) ) ;
408409 } ) ;
409410
410- Debug . layer = document . createElement ( 'tracy-div' ) ;
411- Debug . layer . setAttribute ( 'id' , 'tracy-debug' ) ;
412- Debug . layer . innerHTML = content ;
413- shadow . appendChild ( Debug . layer ) ;
411+ // Insert content directly into shadow root
412+ let temp = document . createElement ( 'div' ) ;
413+ temp . innerHTML = content ;
414+ while ( temp . firstChild ) {
415+ shadow . appendChild ( temp . firstChild ) ;
416+ }
414417
415418 ( document . body || document . documentElement ) . appendChild ( host ) ;
416- evalScripts ( Debug . layer ) ;
417- Debug . layer . style . display = 'block' ;
419+ evalScripts ( shadow ) ;
420+ host . style . display = 'block' ;
418421 Debug . bar . init ( ) ;
419422
420- Debug . layer . querySelectorAll ( '.tracy-panel' ) . forEach ( ( panel ) => {
423+ Debug . shadow . querySelectorAll ( '.tracy-panel' ) . forEach ( ( panel ) => {
421424 Debug . panels [ panel . id ] = new Panel ( panel . id ) ;
422425 Debug . panels [ panel . id ] . restorePosition ( ) ;
423426 } ) ;
@@ -455,12 +458,16 @@ class Debug {
455458 } ) ;
456459 }
457460
458- Debug . layer . insertAdjacentHTML ( 'beforeend' , content . panels ) ;
459- evalScripts ( Debug . layer ) ;
461+ let temp = document . createElement ( 'div' ) ;
462+ temp . innerHTML = content . panels ;
463+ while ( temp . firstChild ) {
464+ Debug . shadow . appendChild ( temp . firstChild ) ;
465+ }
466+ evalScripts ( Debug . shadow ) ;
460467 Debug . bar . elem . insertAdjacentHTML ( 'beforeend' , content . bar ) ;
461468 let ajaxBar = Debug . bar . elem . querySelector ( '.tracy-row:last-child' ) ;
462469
463- Debug . layer . querySelectorAll ( '.tracy-panel' ) . forEach ( ( panel ) => {
470+ Debug . shadow . querySelectorAll ( '.tracy-panel' ) . forEach ( ( panel ) => {
464471 if ( ! Debug . panels [ panel . id ] ) {
465472 Debug . panels [ panel . id ] = new Panel ( panel . id ) ;
466473 Debug . panels [ panel . id ] . restorePosition ( ) ;
0 commit comments