@@ -38,7 +38,8 @@ async function _updateSelectedNode(selectedNode) {
3838}
3939
4040async function _updateSubtree ( selectedNode ) {
41- const ulEl = document . querySelector ( "#subtree ul" ) ;
41+ const subtreeEl = document . getElementById ( "subtree" ) ;
42+ const ulEl = subtreeEl . querySelector ( "ul" ) ;
4243
4344 if ( ! _isValidElement ( selectedNode ) ) {
4445 _render ( [ ] , ulEl ) ;
@@ -47,7 +48,14 @@ async function _updateSubtree(selectedNode) {
4748
4849 const issues = [ ] ;
4950
50- for ( const node of await browser . experiments . inspectedNode . getNodesInSubtree ( ) ) {
51+ subtreeEl . classList . add ( "processing" ) ;
52+ const progressEl = subtreeEl . querySelector ( "aside label" ) ;
53+
54+ progressEl . textContent = "Getting all descendants of the selected node" ;
55+ const nodesInSubtree = await browser . experiments . inspectedNode . getNodesInSubtree ( ) ;
56+
57+ progressEl . textContent = "Getting web compatibility issues for HTML element" ;
58+ for ( const node of nodesInSubtree ) {
5159 if ( ! _isValidElement ( node ) ) {
5260 continue
5361 }
@@ -57,13 +65,19 @@ async function _updateSubtree(selectedNode) {
5765 ..._webcompat . getHTMLElementIssues ( nodeName , attributes , _targetBrowsers ) ) ;
5866 }
5967
68+ progressEl . textContent = "Getting all descendants of the selected node" ;
6069 const declarationBlocks = await browser . experiments . inspectedNode . getStylesInSubtree ( ) ;
70+
71+ progressEl . textContent = "Getting web compatibility issues for CSS styles" ;
6172 for ( const { declarations } of declarationBlocks ) {
6273 issues . push (
6374 ..._webcompat . getCSSDeclarationBlockIssues ( declarations , _targetBrowsers ) ) ;
6475 }
6576
77+ progressEl . textContent = "Rendering all issues" ;
6678 _render ( issues , ulEl ) ;
79+
80+ subtreeEl . classList . remove ( "processing" ) ;
6781}
6882
6983function _isValidElement ( { nodeType, isCustomElement } ) {
0 commit comments