diff --git a/plugins/performanceTesting/remote-driver/src/com/jetbrains/performancePlugin/remotedriver/xpath/XpathDataModelCreator.kt b/plugins/performanceTesting/remote-driver/src/com/jetbrains/performancePlugin/remotedriver/xpath/XpathDataModelCreator.kt index ecb65cf18c05..8111617fc47a 100644 --- a/plugins/performanceTesting/remote-driver/src/com/jetbrains/performancePlugin/remotedriver/xpath/XpathDataModelCreator.kt +++ b/plugins/performanceTesting/remote-driver/src/com/jetbrains/performancePlugin/remotedriver/xpath/XpathDataModelCreator.kt @@ -28,13 +28,15 @@ class XpathDataModelCreator(val onlyVisibleComponents: Boolean = true) { parentElement: Element, hierarchy: ComponentHierarchy, component: Component, - targetComponent: Component? = null + targetComponent: Component? = null, ) { val element = createElement(doc, component, targetComponent) parentElement.appendChild(element) val allChildren = hierarchy.childrenOf(component) - val filteredChildren = allChildren.filter(componentFilter) + val filteredChildren = elementProcessors.fold(allChildren.filter(componentFilter)) { items, processor -> + processor.filterChildItems(component, items, onlyVisibleComponents) + } val exceptionChildren = if (System.getProperty("os.name").startsWith("mac", true)) { allChildren.filter { it.javaClass.name.contains("DialogWrapperPeerImpl") diff --git a/plugins/performanceTesting/remote-driver/src/com/jetbrains/performancePlugin/remotedriver/xpath/XpathDataModelExtension.kt b/plugins/performanceTesting/remote-driver/src/com/jetbrains/performancePlugin/remotedriver/xpath/XpathDataModelExtension.kt index d23bcbfe5ad8..12de06fbbe9c 100644 --- a/plugins/performanceTesting/remote-driver/src/com/jetbrains/performancePlugin/remotedriver/xpath/XpathDataModelExtension.kt +++ b/plugins/performanceTesting/remote-driver/src/com/jetbrains/performancePlugin/remotedriver/xpath/XpathDataModelExtension.kt @@ -13,5 +13,7 @@ interface XpathDataModelExtension { val isRemDevExtension: Boolean + fun filterChildItems(component: Component, filteredItems: List, onlyVisibleItems: Boolean): List = filteredItems + fun postProcessElement(doc: Document, component: Component, element: Element, parentElement: Element) } \ No newline at end of file