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

Reply via email to