code: private void buildRuntimeTree() {
      updateRuntime();
      RuntimeInfo rootInfo = findRuntime();
      String rootPath = rootInfo.getHtmlFramePath();
  
      root = new RuntimeNode();
      root.setFrameName(rootPath);
      root.setRuntimeID(rootInfo.getRuntimeID());
  
      List<RuntimeInfo> runtimesInfos = Lists.newArrayList(runtimesList.values());
      runtimesInfos.remove(rootInfo);
  
      for (RuntimeInfo runtimeInfo : runtimesInfos) {
        // Only add frames which are beneath the root frame
        if (runtimeInfo.getHtmlFramePath().startsWith(rootPath)) {
          addNode(runtimeInfo, root);
        }
      }
    }
docs: TODO tree also must be kept up to date