Hi, I am working on GUI automation component of a performance monitoring product. One of the common approaches to monitoring application is periodically capture text from the control where changes are expected (content area of the browser for Web applications). Text capturing ideally captures all text, including not selectable and user input.
In the product I work on this is achieved by (1) forcing the application to re-draw the texts in the window or part of the window of interest and (2) hooking the functions that responsible for text drawing during the time interval of the capturing is performed. Hooking is performed by modifying the first bytes of the binary code of the hooked functions to jump to the hooking functions, which process the same parameters and then jump back to allow the hooked function to perform their job. In relation to Firefox, his worked well with releases up to 10 ESR (starting from 10, we implement support only to ESR releases), even though with each Ff release forcing the text to be redrawn was more and more difficult. In relation to this I have questions related to both Ff17 and Ff24 (I assume that some answers might be not the same for these releases): Which functions/technologies are drawing the text? Is drawing performed by "normal" Windows APIs, like DrawTextEx or ExtTextOut, or this is no longer the case? Does Ff use some Microsoft technology which was not used before? Does Ff use its own text drawing functions? Does it delegates drawing to another process? BTW. In relation to these questions, even if I disable use of Direct2D and Direct Write according to http://forums.mozillazine.org/viewtopic.php?t=1775755, I still see DWrite.dll loaded into Firefox.exe process. Does Ff caches drawn text, say, in memory device contexts, so that in case the window or a region needs to be repainted, text does not need to be redrawn and widow device context is updated through functions like BitBlt? If so, can such caching be disabled programmatically or through configuration? Does Ff patch Windows DLLs? Are there other approaches to capturing text form Ff you can suggest? Any help is very much appreciated. Thank you, Yuriy Look | Software Developer | Compuware APM yuriy.l...@compuware.com<mailto:yuriy.l...@compuware.com> 313 227 3107 ............................................................................................................................... Simply Smarter APM | Compuware.com/APM<http://www.compuware.com/en_us/application-performance-management.html?utm_source=signature&utm_medium=email> | Facebook<http://www.facebook.com/CompuwareAPM> | Twitter<http://www.twitter.com/CompuwareAPM> | APMblog<http://apmblog.compuware.com/?utm_source=signature&utm_medium=email> | Google+<http://gplus.to/CompuwareAPM> _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform