Tests that computed styles expand and allow tracing to style rules.

==== All styles (should be no computed) ====
[expanded] 

[expanded] 
element.style  { ()

======== Matched CSS Rules ========
[expanded] 
#inspected  { (lazy-computed-style.html:15)
background: gray;
    background-image: initial;
    background-position-x: initial;
    background-position-y: initial;
    background-size: initial;
    background-repeat-x: initial;
    background-repeat-y: initial;
    background-attachment: initial;
    background-origin: initial;
    background-clip: initial;
    background-color: gray;

[expanded] 
#inspected  { (lazy-computed-style.html:10)
/-- overloaded --/ background-color: black;
font-family: Courier;

[expanded] 
#inspected  { (lazy-computed-style.html:5)
/-- overloaded --/ background-color: green;
/-- overloaded --/ font-family: Times;

[expanded] 
div  { (user agent stylesheet)
display: block;


==== All styles (computed should be there) ====
[expanded] 
-webkit-background-clip: border-box;
-webkit-background-origin: padding-box;
-webkit-background-size: auto;
background-attachment: scroll;
    #inspected - initial lazy-computed-style.html:15
background-clip: border-box;
    #inspected - initial lazy-computed-style.html:15
background-color: rgb(128, 128, 128);
    #inspected - gray lazy-computed-style.html:15
    /-- overloaded --/ #inspected - black lazy-computed-style.html:10
    /-- overloaded --/ #inspected - green lazy-computed-style.html:5
background-image: none;
    #inspected - initial lazy-computed-style.html:15
background-origin: padding-box;
    #inspected - initial lazy-computed-style.html:15
background-size: auto;
    #inspected - initial lazy-computed-style.html:15
display: block;
    div - block user agent stylesheet
font-family: Courier;
    #inspected - Courier lazy-computed-style.html:10
    /-- overloaded --/ #inspected - Times lazy-computed-style.html:5

[expanded] 
element.style  { ()

======== Matched CSS Rules ========
[expanded] 
#inspected  { (lazy-computed-style.html:15)
background: gray;
    background-image: initial;
    background-position-x: initial;
    background-position-y: initial;
    background-size: initial;
    background-repeat-x: initial;
    background-repeat-y: initial;
    background-attachment: initial;
    background-origin: initial;
    background-clip: initial;
    background-color: gray;

[expanded] 
#inspected  { (lazy-computed-style.html:10)
/-- overloaded --/ background-color: black;
font-family: Courier;

[expanded] 
#inspected  { (lazy-computed-style.html:5)
/-- overloaded --/ background-color: green;
/-- overloaded --/ font-family: Times;

[expanded] 
div  { (user agent stylesheet)
display: block;



